twx-linux/arch/arm/mm
David Hildenbrand 394290cba9 mm: turn USE_SPLIT_PTE_PTLOCKS / USE_SPLIT_PTE_PTLOCKS into Kconfig options
Patch series "mm: split PTE/PMD PT table Kconfig cleanups+clarifications".

This series is a follow up to the fixes:
	"[PATCH v1 0/2] mm/hugetlb: fix hugetlb vs. core-mm PT locking"

When working on the fixes, I wondered why 8xx is fine (-> never uses split
PT locks) and how PT locking even works properly with PMD page table
sharing (-> always requires split PMD PT locks).

Let's improve the split PT lock detection, make hugetlb properly depend on
it and make 8xx bail out if it would ever get enabled by accident.

As an alternative to patch #3 we could extend the Kconfig
SPLIT_PTE_PTLOCKS option from patch #2 -- but enforcing it closer to the
code that actually implements it feels a bit nicer for documentation
purposes, and there is no need to actually disable it because it should
always be disabled (!SMP).

Did a bunch of cross-compilations to make sure that split PTE/PMD PT locks
are still getting used where we would expect them.

[1] https://lkml.kernel.org/r/20240725183955.2268884-1-david@redhat.com


This patch (of 3):

Let's clean that up a bit and prepare for depending on
CONFIG_SPLIT_PMD_PTLOCKS in other Kconfig options.

More cleanups would be reasonable (like the arch-specific "depends on" for
CONFIG_SPLIT_PTE_PTLOCKS), but we'll leave that for another day.

Link: https://lkml.kernel.org/r/20240726150728.3159964-1-david@redhat.com
Link: https://lkml.kernel.org/r/20240726150728.3159964-2-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Qi Zheng <zhengqi.arch@bytedance.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Peter Xu <peterx@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-09-01 20:25:51 -07:00
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S ARM: 9263/1: use .arch directives instead of assembler command line flags 2022-11-08 18:36:17 +00:00
abort-ev7.S ARM: 9263/1: use .arch directives instead of assembler command line flags 2022-11-08 18:36:17 +00:00
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction 2022-07-06 22:44:49 +01:00
cache-b15-rac.c ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
cache-fa.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-feroceon-l2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 1) 2022-06-10 14:51:35 +02:00
cache-l2x0-pmu.c
cache-l2x0.c
cache-nop.S ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
cache-tauros2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 1) 2022-06-10 14:51:35 +02:00
cache-tauros3.h
cache-uniphier.c ARM: uniphier: fix cache kernel-doc warnings 2023-09-27 11:02:14 +02:00
cache-v4.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v4wb.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v4wt.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v6.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v7.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-v7m.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
cache-xsc3l2.c
cache.c ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
context.c ARM: mm: make vmalloc_seq handling SMP safe 2022-01-25 09:53:52 +01:00
copypage-fa.c
copypage-feroceon.c ARM: 9263/1: use .arch directives instead of assembler command line flags 2022-11-08 18:36:17 +00:00
copypage-v4mc.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
copypage-v4wb.c
copypage-v4wt.c
copypage-v6.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
copypage-xsc3.c ARM: PXA: fix multi-cpu build of xsc3 2022-05-07 22:56:16 +02:00
copypage-xscale.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
dma-mapping-nommu.c dma-mapping: Simplify arch_setup_dma_ops() 2024-04-26 12:07:28 +02:00
dma-mapping.c dma-mapping: Simplify arch_setup_dma_ops() 2024-04-26 12:07:28 +02:00
dma.h
dump.c mm/treewide: replace pmd_large() with pmd_leaf() 2024-03-06 13:04:19 -08:00
extable.c
fault-armv.c mm: turn USE_SPLIT_PTE_PTLOCKS / USE_SPLIT_PTE_PTLOCKS into Kconfig options 2024-09-01 20:25:51 -07:00
fault.c ARM: Remove address checking for MMUless devices 2024-07-09 08:53:59 -07:00
fault.h ARM: 9304/1: add prototype for function called only from asm 2023-06-19 09:35:52 +01:00
flush.c ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses 2024-03-11 16:04:19 +00:00
fsr-2level.c
fsr-3level.c
idmap.c
init.c arch: make execmem setup available regardless of CONFIG_MODULES 2024-05-14 00:31:44 -07:00
iomap.c
ioremap.c mm: Introduce vmap_page_range() to map pages in PCI address space 2024-03-11 16:58:10 +01:00
kasan_init.c ARM: 9329/1: kasan: Use memblock_alloc_try_nid_raw for shadow page 2023-12-05 11:42:15 +00:00
Kconfig ARM: Delete ARM11MPCore (ARM11 ARMv6K SMP) support 2023-12-22 11:43:16 +00:00
l2c-common.c
l2c-l2x0-resume.S
Makefile The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
mm.h arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
mmap.c treewide: use initializer for struct vm_unmapped_area_info 2024-04-25 20:56:27 -07:00
mmu.c ARM: 9356/2: Move asm statements accessing TTBCR into C functions 2024-04-18 12:10:44 +01:00
nommu.c arm: implement the new page table range API 2023-08-24 16:20:20 -07:00
pabort-legacy.S
pabort-v6.S
pabort-v7.S
pageattr.c minmax: add in_range() macro 2023-08-24 16:20:18 -07:00
pgd.c
physaddr.c ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
pmsa-v7.c
pmsa-v8.c ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
proc-arm7tdmi.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm9tdmi.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm720.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm740.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-arm920.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm922.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm925.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm926.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm940.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm946.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1020.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1020e.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1022.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-arm1026.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-fa526.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-feroceon.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-macros.S ARM: 9387/2: mm: Rewrite cacheflush vtables in CFI safe C 2024-04-29 14:14:18 +01:00
proc-mohawk.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-sa110.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-sa1100.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-syms.c
proc-v6.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7-2level.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7-3level.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7-bugs.c ARM: 9213/1: Print message about disabled Spectre workarounds only once 2022-07-06 22:44:49 +01:00
proc-v7.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-v7m.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc-xsc3.S ARM: 9393/1: mm: Use conditionals for CFI branches 2024-05-07 10:30:24 +01:00
proc-xscale.S ARM: 9388/2: mm: Type-annotate all per-processor assembly routines 2024-04-29 14:14:19 +01:00
proc.c ARM: 9408/1: mm: CFI: Fix some erroneous reset prototypes 2024-07-02 09:19:14 +01:00
ptdump_debugfs.c ARM: 9074/1: ptdump: convert to DEFINE_SHOW_ATTRIBUTE 2021-04-18 19:15:13 +01:00
pv-fixup-asm.S ARM: mm: Make virt_to_pfn() a static inline 2023-05-29 11:27:08 +02:00
tlb-fa.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v4.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v4wb.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v4wbi.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v6.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb-v7.S ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00
tlb.c ARM: 9384/2: mm: Make tlbflush routines CFI safe 2024-04-29 14:14:15 +01:00