linux/arch
Nicholas Piggin a008f8f9fd powerpc/64s/hash: improve context tracking of hash faults
This moves the 64s/hash context tracking from hash_page_mm() to
__do_hash_fault(), so it's no longer called by OCXL / SPU
accelerators, which was certainly the wrong thing to be doing,
because those callers are not low level interrupt handlers, so
should have entered a kernel context tracking already.

Then remain in kernel context for the duration of the fault,
rather than enter/exit for the hash fault then enter/exit for
the page fault, which is pointless.

Even still, calling exception_enter/exit in __do_hash_fault seems
questionable because that's touching per-cpu variables, tracing,
etc., which might have been interrupted by this hash fault or
themselves cause hash faults. But maybe I miss something because
hash_page_mm very deliberately calls trace_hash_fault too, for
example. So for now go with it, it's no worse than before, in this
regard.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210130130852.2952424-32-npiggin@gmail.com
2021-02-09 00:02:12 +11:00
..
alpha local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
arc local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
arm local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
arm64 local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
c6x tif-task_work.arch-2020-12-14 2020-12-16 12:33:35 -08:00
csky local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
h8300 local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
hexagon local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
ia64 local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
m68k local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
microblaze local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
mips local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
nds32 local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
nios2 tif-task_work.arch-2020-12-14 2020-12-16 12:33:35 -08:00
openrisc local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
parisc local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
powerpc powerpc/64s/hash: improve context tracking of hash faults 2021-02-09 00:02:12 +11:00
riscv local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
s390 - Update defconfigs and sort config select list. 2021-01-02 12:22:46 -08:00
sh local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
sparc local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
um This pull request contains the following changes for UML: 2020-12-17 17:56:44 -08:00
x86 local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
xtensa local64.h: make <asm/local64.h> mandatory 2020-12-29 15:36:49 -08:00
.gitignore
Kconfig kasan: allow VMAP_STACK for HW_TAGS mode 2020-12-22 12:55:08 -08:00