linux/arch/powerpc/mm
Christophe Leroy 70428da94c powerpc/32s: Save content of sr0 to avoid 'mfsr'
Calling 'mfsr' to get the content of segment registers is heavy,
in addition it requires clearing of the 'reserved' bits.

In order to avoid this operation, save it in mm context and in
thread struct.

The saved sr0 is the one used by kernel, this means that on
locking entry it can be used as is.

For unlocking, the only thing to do is to clear SR_NX.

This improves null_syscall selftest by 12 cycles, ie 4%.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/b02baf2ed8f09bad910dfaeeb7353b2ae6830525.1634627931.git.christophe.leroy@csgroup.eu
2021-12-09 22:41:17 +11:00
..
book3s32 powerpc/32s: Save content of sr0 to avoid 'mfsr' 2021-12-09 22:41:17 +11:00
book3s64 powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU 2021-12-09 22:41:13 +11:00
kasan powerpc/32s: Fix shift-out-of-bounds in KASAN init 2021-11-30 22:44:39 +11:00
nohash powerpc/44x: Activate KUEP at all time 2021-12-09 22:41:17 +11:00
ptdump powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU 2021-12-09 22:41:13 +11:00
cacheflush.c powerpc/mem: Use kmap_local_page() in flushing functions 2021-04-14 23:04:19 +10:00
copro_fault.c powerpc/64s: Move hash MMU support code under CONFIG_PPC_64S_HASH_MMU 2021-12-09 22:41:13 +11:00
dma-noncoherent.c dma-mapping: merge <linux/dma-noncoherent.h> into <linux/dma-map-ops.h> 2020-10-06 07:07:06 +02:00
drmem.c pseries/drmem: update LMBs after LPM 2021-08-10 23:14:55 +10:00
fault.c powerpc/64s: Move and rename do_bad_slb_fault as it is not hash specific 2021-12-02 22:57:23 +11:00
hugetlbpage.c powerpc/64s: Always define arch unmapped area calls 2021-12-09 22:40:24 +11:00
init_32.c powerpc: Enable KFENCE for PPC32 2021-03-24 14:09:30 +11:00
init_64.c powerpc/64s: Make hash MMU support configurable 2021-12-09 22:40:24 +11:00
init-common.c Revert "powerpc: Inline setup_kup()" 2021-12-09 22:41:16 +11:00
ioremap_32.c powerpc/mm: Leave a gap between early allocated IO areas 2021-06-25 00:07:10 +10:00
ioremap_64.c powerpc/mm: Leave a gap between early allocated IO areas 2021-06-25 00:07:10 +10:00
ioremap.c powerpc: make memremap_compat_align 64s-only 2021-12-02 22:57:24 +11:00
maccess.c powerpc: Don't use 'struct ppc_inst' to reference instruction location 2021-06-17 00:09:00 +10:00
Makefile powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP 2021-08-25 13:35:48 +10:00
mem.c Revert "powerpc/code-patching: Improve verification of patchability" 2021-11-29 17:41:52 +11:00
mmap.c powerpc/64s: Always define arch unmapped area calls 2021-12-09 22:40:24 +11:00
mmu_context.c powerpc/32s: Save content of sr0 to avoid 'mfsr' 2021-12-09 22:41:17 +11:00
mmu_decl.h powerpc/fsl_booke: Update of TLBCAMs after init 2021-10-22 15:22:03 +11:00
numa.c powerpc/pseries: Fix numa FORM2 parsing fallback code 2021-11-15 15:46:46 +11:00
pageattr.c powerpc/mm: Fix set_memory_*() against concurrent accesses 2021-08-19 09:41:54 +10:00
pgtable_32.c Merge branch 'akpm' (patches from Andrew) 2021-11-09 10:11:53 -08:00
pgtable_64.c mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t * 2021-07-08 11:48:22 -07:00
pgtable-frag.c powerpc/mm/radix: Fix PTE/PMD fragment count for early page table mappings 2020-07-20 22:57:56 +10:00
pgtable.c powerpc/64s: Fix radix MMU when MMU_FTR_HPTE_TABLE is clear 2021-12-09 22:40:24 +11:00
slice.c powerpc/64s: Always define arch unmapped area calls 2021-12-09 22:40:24 +11:00