Message ID | 20250213040934.3245750-5-anshuman.khandual@arm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | mm: Rework generic PTDUMP configs | expand |
Le 13/02/2025 à 05:09, Anshuman Khandual a écrit : > Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. > But generic ptdump gets enabled via PTDUMP_CORE. These configs combination > is confusing as they sound very similar and does not differentiate between > platform's feature subscription and feature enablement for ptdump. Rename > the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve > readability. For me GENERIC_PTDUMP is more explicit and similar to GENERIC_IOMAP or GENERIC_IOREMAP or GENERIC_GETTIMEOFDAY: The arch provides the necessary helpers to use the generic implementation. For me ARCH_HAS_PTDUMP just mean't that an architecture implements PTDUMP, it doesn't mean it does it by using the generic infrastructure. For instance, arm32 implements PTDUMP but without using the generic one so I would say that arm32 has PTDUMP and expect it to select ARCH_HAS_PTDUMP
On 13/02/2025 04:09, Anshuman Khandual wrote: > Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. > But generic ptdump gets enabled via PTDUMP_CORE. These configs combination > is confusing as they sound very similar and does not differentiate between > platform's feature subscription and feature enablement for ptdump. Rename > the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve > readability. I'm not going to bikeshed over the naming, but a few points below. > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: Jonathan Corbet <corbet@lwn.net> > Cc: Marc Zyngier <maz@kernel.org> > Cc: Michael Ellerman <mpe@ellerman.id.au> > Cc: Nicholas Piggin <npiggin@gmail.com> > Cc: Paul Walmsley <paul.walmsley@sifive.com> > Cc: Palmer Dabbelt <palmer@dabbelt.com> > Cc: Heiko Carstens <hca@linux.ibm.com> > Cc: Vasily Gorbik <gor@linux.ibm.com> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-doc@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: kvmarm@lists.linux.dev > Cc: linuxppc-dev@lists.ozlabs.org > Cc: linux-riscv@lists.infradead.org > Cc: linux-s390@vger.kernel.org > Cc: linux-mm@kvack.org > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > Documentation/arch/arm64/ptdump.rst | 4 ++-- > arch/arm64/Kconfig | 2 +- > arch/arm64/include/asm/ptdump.h | 4 ++-- > arch/arm64/kvm/Kconfig | 4 ++-- > arch/arm64/mm/Makefile | 2 +- > arch/powerpc/Kconfig | 2 +- > arch/powerpc/configs/mpc885_ads_defconfig | 2 +- > arch/powerpc/mm/Makefile | 2 +- > arch/riscv/Kconfig | 2 +- > arch/riscv/mm/Makefile | 2 +- > arch/s390/Kconfig | 2 +- > arch/s390/mm/Makefile | 2 +- > arch/x86/Kconfig | 2 +- > arch/x86/Kconfig.debug | 2 +- > arch/x86/mm/Makefile | 2 +- > mm/Kconfig.debug | 12 ++++++------ > mm/Makefile | 2 +- > 17 files changed, 25 insertions(+), 25 deletions(-) > > diff --git a/Documentation/arch/arm64/ptdump.rst b/Documentation/arch/arm64/ptdump.rst > index 5dcfc5d7cddf..a2e527377da3 100644 > --- a/Documentation/arch/arm64/ptdump.rst > +++ b/Documentation/arch/arm64/ptdump.rst > @@ -22,8 +22,8 @@ offlining of memory being accessed by the ptdump code. > In order to dump the kernel page tables, enable the following > configurations and mount debugfs:: > > - CONFIG_GENERIC_PTDUMP=y > - CONFIG_PTDUMP_CORE=y > + CONFIG_ARCH_HAS_PTDUMP=y > + CONFIG_PTDUMP=y > CONFIG_PTDUMP_DEBUGFS=y I think we should drop CONFIG_GENERIC_PTDUMP/CONFIG_ARCH_HAS_PTDUMP from this list. It's not a user-selectable symbol so there's no need to be documenting it here. > > mount -t debugfs nodev /sys/kernel/debug [...] > diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig > index 77306be62e9e..db005618690b 100644 > --- a/arch/powerpc/configs/mpc885_ads_defconfig > +++ b/arch/powerpc/configs/mpc885_ads_defconfig > @@ -78,4 +78,4 @@ CONFIG_DEBUG_VM_PGTABLE=y > CONFIG_DETECT_HUNG_TASK=y > CONFIG_BDI_SWITCH=y > CONFIG_PPC_EARLY_DEBUG=y > -CONFIG_GENERIC_PTDUMP=y > +CONFIG_PTDUMP=y I'd suggest dropp this from the defconfig too, just like patch 1 dropped it from debug.config. Steve
Le 13/02/2025 à 12:23, Steven Price a écrit : > On 13/02/2025 04:09, Anshuman Khandual wrote: >> Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. >> But generic ptdump gets enabled via PTDUMP_CORE. These configs combination >> is confusing as they sound very similar and does not differentiate between >> platform's feature subscription and feature enablement for ptdump. Rename >> the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve >> readability. > > [...] >> diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig >> index 77306be62e9e..db005618690b 100644 >> --- a/arch/powerpc/configs/mpc885_ads_defconfig >> +++ b/arch/powerpc/configs/mpc885_ads_defconfig >> @@ -78,4 +78,4 @@ CONFIG_DEBUG_VM_PGTABLE=y >> CONFIG_DETECT_HUNG_TASK=y >> CONFIG_BDI_SWITCH=y >> CONFIG_PPC_EARLY_DEBUG=y >> -CONFIG_GENERIC_PTDUMP=y >> +CONFIG_PTDUMP=y > > I'd suggest dropp this from the defconfig too, just like patch 1 dropped > it from debug.config. > Thanks for spotting that. That one is wrong. Was introduced by commit d210ee3fdfe8 ("powerpc/configs: Update config files for removed/renamed symbols") which aimed at fixing commit e084728393a5 ("powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP") but it did it wrong. It is CONFIG_PTDUMP_DEBUGFS that is wanted.
On 2/13/25 13:08, Christophe Leroy wrote: > > > Le 13/02/2025 à 05:09, Anshuman Khandual a écrit : >> Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. >> But generic ptdump gets enabled via PTDUMP_CORE. These configs combination >> is confusing as they sound very similar and does not differentiate between >> platform's feature subscription and feature enablement for ptdump. Rename >> the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve >> readability. > > For me GENERIC_PTDUMP is more explicit and similar to GENERIC_IOMAP or GENERIC_IOREMAP or GENERIC_GETTIMEOFDAY: The arch provides the necessary helpers to use the generic implementation. I do realize that GENERIC_ is another method for achieving shared feature across multiple platforms via providing necessary helpers. But I guess there might be a difference - it might not have other similar but separate dependent configs ? > > For me ARCH_HAS_PTDUMP just mean't that an architecture implements PTDUMP, it doesn't mean it does it by using the generic infrastructure. ARCH_HAS_XXX indicates that an architecture subscribes to a generic feature XXX, by implementing all necessary helpers. But the feature in itself is a generic and a shared one. If the platform were to implement a feature on its own without any generic component, it could do that via a separate platform specific config without requiring ARCH_HAS_XXX based subscription indication. > > For instance, arm32 implements PTDUMP but without using the generic one so I would say that arm32 has PTDUMP and expect it to select ARCH_HAS_PTDUMP Actually it does not need to select ARCH_HAS_PTDUMP, as it does not subscribe into generic PTDUMP. Let's see PTDUMP configs on arm (32) ARM_PTDUMP_CORE ARM_PTDUMP_DEBUGFS --> select ARM_PTDUMP_CORE ARM_DEBUG_WX --> select ARM_PTDUMP_CORE The platform has a self contained PTDUMP implementation which does not depend on generic PTDUMP at all. Hence all these ptdump configs are marked as ARM_ etc as they are platform specific.
On 2/13/25 16:53, Steven Price wrote: > On 13/02/2025 04:09, Anshuman Khandual wrote: >> Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. >> But generic ptdump gets enabled via PTDUMP_CORE. These configs combination >> is confusing as they sound very similar and does not differentiate between >> platform's feature subscription and feature enablement for ptdump. Rename >> the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve >> readability. > > I'm not going to bikeshed over the naming, but a few points below. > >> Cc: Catalin Marinas <catalin.marinas@arm.com> >> Cc: Will Deacon <will@kernel.org> >> Cc: Jonathan Corbet <corbet@lwn.net> >> Cc: Marc Zyngier <maz@kernel.org> >> Cc: Michael Ellerman <mpe@ellerman.id.au> >> Cc: Nicholas Piggin <npiggin@gmail.com> >> Cc: Paul Walmsley <paul.walmsley@sifive.com> >> Cc: Palmer Dabbelt <palmer@dabbelt.com> >> Cc: Heiko Carstens <hca@linux.ibm.com> >> Cc: Vasily Gorbik <gor@linux.ibm.com> >> Cc: Thomas Gleixner <tglx@linutronix.de> >> Cc: Ingo Molnar <mingo@redhat.com> >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Cc: linux-arm-kernel@lists.infradead.org >> Cc: linux-doc@vger.kernel.org >> Cc: linux-kernel@vger.kernel.org >> Cc: kvmarm@lists.linux.dev >> Cc: linuxppc-dev@lists.ozlabs.org >> Cc: linux-riscv@lists.infradead.org >> Cc: linux-s390@vger.kernel.org >> Cc: linux-mm@kvack.org >> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> >> --- >> Documentation/arch/arm64/ptdump.rst | 4 ++-- >> arch/arm64/Kconfig | 2 +- >> arch/arm64/include/asm/ptdump.h | 4 ++-- >> arch/arm64/kvm/Kconfig | 4 ++-- >> arch/arm64/mm/Makefile | 2 +- >> arch/powerpc/Kconfig | 2 +- >> arch/powerpc/configs/mpc885_ads_defconfig | 2 +- >> arch/powerpc/mm/Makefile | 2 +- >> arch/riscv/Kconfig | 2 +- >> arch/riscv/mm/Makefile | 2 +- >> arch/s390/Kconfig | 2 +- >> arch/s390/mm/Makefile | 2 +- >> arch/x86/Kconfig | 2 +- >> arch/x86/Kconfig.debug | 2 +- >> arch/x86/mm/Makefile | 2 +- >> mm/Kconfig.debug | 12 ++++++------ >> mm/Makefile | 2 +- >> 17 files changed, 25 insertions(+), 25 deletions(-) >> >> diff --git a/Documentation/arch/arm64/ptdump.rst b/Documentation/arch/arm64/ptdump.rst >> index 5dcfc5d7cddf..a2e527377da3 100644 >> --- a/Documentation/arch/arm64/ptdump.rst >> +++ b/Documentation/arch/arm64/ptdump.rst >> @@ -22,8 +22,8 @@ offlining of memory being accessed by the ptdump code. >> In order to dump the kernel page tables, enable the following >> configurations and mount debugfs:: >> >> - CONFIG_GENERIC_PTDUMP=y >> - CONFIG_PTDUMP_CORE=y >> + CONFIG_ARCH_HAS_PTDUMP=y >> + CONFIG_PTDUMP=y >> CONFIG_PTDUMP_DEBUGFS=y > > I think we should drop CONFIG_GENERIC_PTDUMP/CONFIG_ARCH_HAS_PTDUMP from > this list. It's not a user-selectable symbol so there's no need to be > documenting it here. Sure, will fold that in here. > >> >> mount -t debugfs nodev /sys/kernel/debug > [...] >> diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig >> index 77306be62e9e..db005618690b 100644 >> --- a/arch/powerpc/configs/mpc885_ads_defconfig >> +++ b/arch/powerpc/configs/mpc885_ads_defconfig >> @@ -78,4 +78,4 @@ CONFIG_DEBUG_VM_PGTABLE=y >> CONFIG_DETECT_HUNG_TASK=y >> CONFIG_BDI_SWITCH=y >> CONFIG_PPC_EARLY_DEBUG=y >> -CONFIG_GENERIC_PTDUMP=y >> +CONFIG_PTDUMP=y > > I'd suggest dropp this from the defconfig too, just like patch 1 dropped > it from debug.config. Agreed.
On 2/13/25 17:19, Christophe Leroy wrote: > > > Le 13/02/2025 à 12:23, Steven Price a écrit : >> On 13/02/2025 04:09, Anshuman Khandual wrote: >>> Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. >>> But generic ptdump gets enabled via PTDUMP_CORE. These configs combination >>> is confusing as they sound very similar and does not differentiate between >>> platform's feature subscription and feature enablement for ptdump. Rename >>> the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve >>> readability. >> >> [...] >>> diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig >>> index 77306be62e9e..db005618690b 100644 >>> --- a/arch/powerpc/configs/mpc885_ads_defconfig >>> +++ b/arch/powerpc/configs/mpc885_ads_defconfig >>> @@ -78,4 +78,4 @@ CONFIG_DEBUG_VM_PGTABLE=y >>> CONFIG_DETECT_HUNG_TASK=y >>> CONFIG_BDI_SWITCH=y >>> CONFIG_PPC_EARLY_DEBUG=y >>> -CONFIG_GENERIC_PTDUMP=y >>> +CONFIG_PTDUMP=y >> >> I'd suggest dropp this from the defconfig too, just like patch 1 dropped >> it from debug.config. >> > > Thanks for spotting that. > > That one is wrong. Was introduced by commit d210ee3fdfe8 ("powerpc/configs: Update config files for removed/renamed symbols") which aimed at fixing commit e084728393a5 ("powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP") but it did it wrong. > > It is CONFIG_PTDUMP_DEBUGFS that is wanted. Should this replacement be done in the series or would you like it to be handled in powerpc later ?
diff --git a/Documentation/arch/arm64/ptdump.rst b/Documentation/arch/arm64/ptdump.rst index 5dcfc5d7cddf..a2e527377da3 100644 --- a/Documentation/arch/arm64/ptdump.rst +++ b/Documentation/arch/arm64/ptdump.rst @@ -22,8 +22,8 @@ offlining of memory being accessed by the ptdump code. In order to dump the kernel page tables, enable the following configurations and mount debugfs:: - CONFIG_GENERIC_PTDUMP=y - CONFIG_PTDUMP_CORE=y + CONFIG_ARCH_HAS_PTDUMP=y + CONFIG_PTDUMP=y CONFIG_PTDUMP_DEBUGFS=y mount -t debugfs nodev /sys/kernel/debug diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index fcdd0ed3eca8..045d24d074a0 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -41,6 +41,7 @@ config ARM64 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE select ARCH_HAS_NONLEAF_PMD_YOUNG if ARM64_HAFT + select ARCH_HAS_PTDUMP select ARCH_HAS_PTE_DEVMAP select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_HW_PTE_YOUNG @@ -157,7 +158,6 @@ config ARM64 select GENERIC_IRQ_SHOW_LEVEL select GENERIC_LIB_DEVMEM_IS_ALLOWED select GENERIC_PCI_IOMAP - select GENERIC_PTDUMP select GENERIC_SCHED_CLOCK select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL diff --git a/arch/arm64/include/asm/ptdump.h b/arch/arm64/include/asm/ptdump.h index 6cf4aae05219..b2931d1ae0fb 100644 --- a/arch/arm64/include/asm/ptdump.h +++ b/arch/arm64/include/asm/ptdump.h @@ -7,7 +7,7 @@ #include <linux/ptdump.h> -#ifdef CONFIG_PTDUMP_CORE +#ifdef CONFIG_PTDUMP #include <linux/mm_types.h> #include <linux/seq_file.h> @@ -70,6 +70,6 @@ static inline void ptdump_debugfs_register(struct ptdump_info *info, #else static inline void note_page(struct ptdump_state *pt_st, unsigned long addr, int level, u64 val) { } -#endif /* CONFIG_PTDUMP_CORE */ +#endif /* CONFIG_PTDUMP */ #endif /* __ASM_PTDUMP_H */ diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index ead632ad01b4..096e45acadb2 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -71,8 +71,8 @@ config PTDUMP_STAGE2_DEBUGFS depends on KVM depends on DEBUG_KERNEL depends on DEBUG_FS - depends on GENERIC_PTDUMP - select PTDUMP_CORE + depends on ARCH_HAS_PTDUMP + select PTDUMP default n help Say Y here if you want to show the stage-2 kernel pagetables diff --git a/arch/arm64/mm/Makefile b/arch/arm64/mm/Makefile index fc92170a8f37..c26489cf96cd 100644 --- a/arch/arm64/mm/Makefile +++ b/arch/arm64/mm/Makefile @@ -5,7 +5,7 @@ obj-y := dma-mapping.o extable.o fault.o init.o \ context.o proc.o pageattr.o fixmap.o obj-$(CONFIG_ARM64_CONTPTE) += contpte.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o -obj-$(CONFIG_PTDUMP_CORE) += ptdump.o +obj-$(CONFIG_PTDUMP) += ptdump.o obj-$(CONFIG_PTDUMP_DEBUGFS) += ptdump_debugfs.o obj-$(CONFIG_TRANS_TABLE) += trans_pgd.o obj-$(CONFIG_TRANS_TABLE) += trans_pgd-asm.o diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 424f188e62d9..6f1ae41dcf85 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -148,6 +148,7 @@ config PPC select ARCH_HAS_PHYS_TO_DMA select ARCH_HAS_PMEM_API select ARCH_HAS_PREEMPT_LAZY + select ARCH_HAS_PTDUMP select ARCH_HAS_PTE_DEVMAP if PPC_BOOK3S_64 select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC_BOOK3S_64 @@ -206,7 +207,6 @@ config PPC select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW_LEVEL select GENERIC_PCI_IOMAP if PCI - select GENERIC_PTDUMP select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL select GENERIC_VDSO_TIME_NS diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig index 77306be62e9e..db005618690b 100644 --- a/arch/powerpc/configs/mpc885_ads_defconfig +++ b/arch/powerpc/configs/mpc885_ads_defconfig @@ -78,4 +78,4 @@ CONFIG_DEBUG_VM_PGTABLE=y CONFIG_DETECT_HUNG_TASK=y CONFIG_BDI_SWITCH=y CONFIG_PPC_EARLY_DEBUG=y -CONFIG_GENERIC_PTDUMP=y +CONFIG_PTDUMP=y diff --git a/arch/powerpc/mm/Makefile b/arch/powerpc/mm/Makefile index 0fe2f085c05a..8c1582b2987d 100644 --- a/arch/powerpc/mm/Makefile +++ b/arch/powerpc/mm/Makefile @@ -15,5 +15,5 @@ obj-$(CONFIG_NUMA) += numa.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o obj-$(CONFIG_NOT_COHERENT_CACHE) += dma-noncoherent.o obj-$(CONFIG_PPC_COPRO_BASE) += copro_fault.o -obj-$(CONFIG_PTDUMP_CORE) += ptdump/ +obj-$(CONFIG_PTDUMP) += ptdump/ obj-$(CONFIG_KASAN) += kasan/ diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index c4cdba6460b8..5aef2aa4103c 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -43,6 +43,7 @@ config RISCV select ARCH_HAS_PMEM_API select ARCH_HAS_PREEMPT_LAZY select ARCH_HAS_PREPARE_SYNC_CORE_CMD + select ARCH_HAS_PTDUMP select ARCH_HAS_PTE_DEVMAP if 64BIT && MMU select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_SET_DIRECT_MAP if MMU @@ -112,7 +113,6 @@ config RISCV select GENERIC_IRQ_SHOW_LEVEL select GENERIC_LIB_DEVMEM_IS_ALLOWED select GENERIC_PCI_IOMAP - select GENERIC_PTDUMP select GENERIC_SCHED_CLOCK select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL if MMU && 64BIT diff --git a/arch/riscv/mm/Makefile b/arch/riscv/mm/Makefile index cbe4d775ef56..b916a68d324a 100644 --- a/arch/riscv/mm/Makefile +++ b/arch/riscv/mm/Makefile @@ -19,7 +19,7 @@ obj-y += context.o obj-y += pmem.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o -obj-$(CONFIG_PTDUMP_CORE) += ptdump.o +obj-$(CONFIG_PTDUMP) += ptdump.o obj-$(CONFIG_KASAN) += kasan_init.o ifdef CONFIG_KASAN diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 9c9ec08d78c7..dd9dd2f8e673 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -96,6 +96,7 @@ config S390 select ARCH_HAS_MEM_ENCRYPT select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS select ARCH_HAS_PREEMPT_LAZY + select ARCH_HAS_PTDUMP select ARCH_HAS_PTE_SPECIAL select ARCH_HAS_SCALED_CPUTIME select ARCH_HAS_SET_DIRECT_MAP @@ -163,7 +164,6 @@ config S390 select GENERIC_CPU_VULNERABILITIES select GENERIC_ENTRY select GENERIC_GETTIMEOFDAY - select GENERIC_PTDUMP select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL select GENERIC_VDSO_TIME_NS diff --git a/arch/s390/mm/Makefile b/arch/s390/mm/Makefile index f6c2db7a8669..9726b91fe7e4 100644 --- a/arch/s390/mm/Makefile +++ b/arch/s390/mm/Makefile @@ -9,6 +9,6 @@ obj-y += page-states.o pageattr.o pgtable.o pgalloc.o extable.o obj-$(CONFIG_CMM) += cmm.o obj-$(CONFIG_DEBUG_VIRTUAL) += physaddr.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o -obj-$(CONFIG_PTDUMP_CORE) += dump_pagetables.o +obj-$(CONFIG_PTDUMP) += dump_pagetables.o obj-$(CONFIG_PGSTE) += gmap.o obj-$(CONFIG_PFAULT) += pfault.o diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 87198d957e2f..aa04757f7591 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -26,6 +26,7 @@ config X86_64 depends on 64BIT # Options that are inherently 64-bit kernel only: select ARCH_HAS_GIGANTIC_PAGE + select ARCH_HAS_PTDUMP select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 select ARCH_SUPPORTS_PER_VMA_LOCK select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE @@ -174,7 +175,6 @@ config X86 select GENERIC_IRQ_RESERVATION_MODE select GENERIC_IRQ_SHOW select GENERIC_PENDING_IRQ if SMP - select GENERIC_PTDUMP select GENERIC_SMP_IDLE_THREAD select GENERIC_TIME_VSYSCALL select GENERIC_GETTIMEOFDAY diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug index 1eb4d23cdaae..c95c3aaadf97 100644 --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug @@ -59,7 +59,7 @@ config EARLY_PRINTK_USB_XDBC config EFI_PGT_DUMP bool "Dump the EFI pagetable" depends on EFI - select PTDUMP_CORE + select PTDUMP help Enable this if you want to dump the EFI page table before enabling virtual mode. This can be used to debug miscellaneous diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile index 690fbf48e853..e0c99a8760ca 100644 --- a/arch/x86/mm/Makefile +++ b/arch/x86/mm/Makefile @@ -39,7 +39,7 @@ CFLAGS_fault.o := -I $(src)/../include/asm/trace obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o -obj-$(CONFIG_PTDUMP_CORE) += dump_pagetables.o +obj-$(CONFIG_PTDUMP) += dump_pagetables.o obj-$(CONFIG_PTDUMP_DEBUGFS) += debug_pagetables.o obj-$(CONFIG_HIGHMEM) += highmem_32.o diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug index c08406760d29..df657c021a18 100644 --- a/mm/Kconfig.debug +++ b/mm/Kconfig.debug @@ -186,9 +186,9 @@ config ARCH_HAS_DEBUG_WX config DEBUG_WX bool "Warn on W+X mappings at boot" depends on ARCH_HAS_DEBUG_WX - depends on GENERIC_PTDUMP + depends on ARCH_HAS_PTDUMP depends on MMU - select PTDUMP_CORE + select PTDUMP help Generate a warning if any W+X mappings are found at boot. @@ -213,19 +213,19 @@ config DEBUG_WX If in doubt, say "Y". -config GENERIC_PTDUMP +config ARCH_HAS_PTDUMP depends on MMU bool -config PTDUMP_CORE +config PTDUMP bool config PTDUMP_DEBUGFS bool "Export kernel pagetable layout to userspace via debugfs" depends on DEBUG_KERNEL depends on DEBUG_FS - depends on GENERIC_PTDUMP - select PTDUMP_CORE + depends on ARCH_HAS_PTDUMP + select PTDUMP help Say Y here if you want to show the kernel pagetable layout in a debugfs file. This information is only useful for kernel developers diff --git a/mm/Makefile b/mm/Makefile index 850386a67b3e..26dfecd4d396 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -138,7 +138,7 @@ obj-$(CONFIG_ZONE_DEVICE) += memremap.o obj-$(CONFIG_HMM_MIRROR) += hmm.o obj-$(CONFIG_MEMFD_CREATE) += memfd.o obj-$(CONFIG_MAPPING_DIRTY_HELPERS) += mapping_dirty_helpers.o -obj-$(CONFIG_PTDUMP_CORE) += ptdump.o +obj-$(CONFIG_PTDUMP) += ptdump.o obj-$(CONFIG_PAGE_REPORTING) += page_reporting.o obj-$(CONFIG_IO_MAPPING) += io-mapping.o obj-$(CONFIG_HAVE_BOOTMEM_INFO_NODE) += bootmem_info.o
Platforms subscribe into generic ptdump implementation via GENERIC_PTDUMP. But generic ptdump gets enabled via PTDUMP_CORE. These configs combination is confusing as they sound very similar and does not differentiate between platform's feature subscription and feature enablement for ptdump. Rename the configs as ARCH_HAS_PTDUMP and PTDUMP making it more clear and improve readability. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Marc Zyngier <maz@kernel.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: kvmarm@lists.linux.dev Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-riscv@lists.infradead.org Cc: linux-s390@vger.kernel.org Cc: linux-mm@kvack.org Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> --- Documentation/arch/arm64/ptdump.rst | 4 ++-- arch/arm64/Kconfig | 2 +- arch/arm64/include/asm/ptdump.h | 4 ++-- arch/arm64/kvm/Kconfig | 4 ++-- arch/arm64/mm/Makefile | 2 +- arch/powerpc/Kconfig | 2 +- arch/powerpc/configs/mpc885_ads_defconfig | 2 +- arch/powerpc/mm/Makefile | 2 +- arch/riscv/Kconfig | 2 +- arch/riscv/mm/Makefile | 2 +- arch/s390/Kconfig | 2 +- arch/s390/mm/Makefile | 2 +- arch/x86/Kconfig | 2 +- arch/x86/Kconfig.debug | 2 +- arch/x86/mm/Makefile | 2 +- mm/Kconfig.debug | 12 ++++++------ mm/Makefile | 2 +- 17 files changed, 25 insertions(+), 25 deletions(-)