linux/arch
Kefeng Wang bc7996c864 x86: mm: accelerate pagefault when badaccess
The access_error() of vma is already checked under per-VMA lock, if it is
a bad access, directly handle error, no need to retry with mmap_lock
again.  In order to release the correct lock, pass the mm_struct into
bad_area_access_error().  If mm is NULL, release vma lock, or release
mmap_lock.  Since the page faut is handled under per-VMA lock, count it as
a vma lock event with VMA_LOCK_SUCCESS.

Link: https://lkml.kernel.org/r/20240403083805.1818160-8-wangkefeng.wang@huawei.com
Reviewed-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-04-25 20:56:40 -07:00
..
alpha treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
arc treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
arm arm: mm: accelerate pagefault when VM_FAULT_BADACCESS 2024-04-25 20:56:39 -07:00
arm64 arm64: mm: accelerate pagefault when VM_FAULT_BADACCESS 2024-04-25 20:56:38 -07:00
csky csky: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
hexagon hexagon: vmlinux.lds.S: handle attributes section 2024-03-26 11:07:23 -07:00
loongarch treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
m68k TTY/Serial driver update for 6.9-rc1 2024-03-21 12:44:10 -07:00
microblaze
mips treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
nios2 nios2: Only use built-in devicetree blob if configured to do so 2024-04-03 14:35:53 -05:00
openrisc OpenRISC updates for 6.9 2024-03-14 15:53:10 -07:00
parisc parisc: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
powerpc powerpc: mm: accelerate pagefault when badaccess 2024-04-25 20:56:39 -07:00
riscv riscv: mm: accelerate pagefault when badaccess 2024-04-25 20:56:39 -07:00
s390 s390: mm: accelerate pagefault when badaccess 2024-04-25 20:56:39 -07:00
sh treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
sparc treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
um mm: vmalloc: enable memory allocation profiling 2024-04-25 20:55:57 -07:00
x86 x86: mm: accelerate pagefault when badaccess 2024-04-25 20:56:40 -07:00
xtensa xtensa: remove uses of PG_arch_1 on individual pages 2024-04-25 20:56:13 -07:00
.gitignore
Kconfig Kconfig: add some hidden tabs on purpose 2024-04-12 10:05:10 -07:00