* [PATCH V2] mm/ptdump: Drop GENERIC_PTDUMP
@ 2025-02-05 5:00 Anshuman Khandual
2025-02-05 10:01 ` Mark Rutland
0 siblings, 1 reply; 3+ messages in thread
From: Anshuman Khandual @ 2025-02-05 5:00 UTC (permalink / raw)
To: linux-mm
Cc: steven.price, christophe.leroy, Anshuman Khandual,
Catalin Marinas, Will Deacon, Jonathan Corbet, Marc Zyngier,
Michael Ellerman, Nicholas Piggin, Paul Walmsley, Palmer Dabbelt,
Heiko Carstens, Vasily Gorbik, Thomas Gleixner, Ingo Molnar,
Andrew Morton, linux-arm-kernel, linux-doc, linux-kernel, kvmarm,
linuxppc-dev, linux-riscv, linux-s390
GENERIC_PTDUMP does not guard any code but instead just used for platform's
subscription into core ptdump defined under PTDUMP_CORE, which is selected.
Instead use PTDUMP_CORE for platform subscription and drop GENERIC_PTDUMP.
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>
---
This patch applies on v6.14-rc1
Changes in V2:
- Keep arch/powerpc/Kconfig alphabetically sorted per Christophe
Changes in V1:
https://lore.kernel.org/all/20241217034807.2541349-1-anshuman.khandual@arm.com/
Documentation/arch/arm64/ptdump.rst | 1 -
arch/arm64/Kconfig | 2 +-
arch/arm64/kvm/Kconfig | 3 +--
arch/powerpc/Kconfig | 2 +-
arch/powerpc/configs/mpc885_ads_defconfig | 1 -
arch/riscv/Kconfig | 2 +-
arch/s390/Kconfig | 2 +-
arch/x86/Kconfig | 2 +-
arch/x86/Kconfig.debug | 2 +-
kernel/configs/debug.config | 1 -
mm/Kconfig.debug | 8 ++------
11 files changed, 9 insertions(+), 17 deletions(-)
diff --git a/Documentation/arch/arm64/ptdump.rst b/Documentation/arch/arm64/ptdump.rst
index 5dcfc5d7cddf..61ca040a885b 100644
--- a/Documentation/arch/arm64/ptdump.rst
+++ b/Documentation/arch/arm64/ptdump.rst
@@ -22,7 +22,6 @@ 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_PTDUMP_DEBUGFS=y
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index fcdd0ed3eca8..1f516bed81dd 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -157,7 +157,7 @@ config ARM64
select GENERIC_IRQ_SHOW_LEVEL
select GENERIC_LIB_DEVMEM_IS_ALLOWED
select GENERIC_PCI_IOMAP
- select GENERIC_PTDUMP
+ select PTDUMP_CORE
select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL
diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig
index ead632ad01b4..fe17d7f5b061 100644
--- a/arch/arm64/kvm/Kconfig
+++ b/arch/arm64/kvm/Kconfig
@@ -71,8 +71,7 @@ config PTDUMP_STAGE2_DEBUGFS
depends on KVM
depends on DEBUG_KERNEL
depends on DEBUG_FS
- depends on GENERIC_PTDUMP
- select PTDUMP_CORE
+ depends on PTDUMP_CORE
default n
help
Say Y here if you want to show the stage-2 kernel pagetables
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 424f188e62d9..97312440f715 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -206,7 +206,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
@@ -314,6 +313,7 @@ config PPC
select PCI_MSI_ARCH_FALLBACKS if PCI_MSI
select PCI_SYSCALL if PCI
select PPC_DAWR if PPC64
+ select PTDUMP_CORE
select RTC_LIB
select SPARSE_IRQ
select STRICT_KERNEL_RWX if STRICT_MODULE_RWX
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 77306be62e9e..ea6f836407d2 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_defconfig
@@ -78,4 +78,3 @@ CONFIG_DEBUG_VM_PGTABLE=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_BDI_SWITCH=y
CONFIG_PPC_EARLY_DEBUG=y
-CONFIG_GENERIC_PTDUMP=y
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 7612c52e9b1e..bdaf08c1e1da 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -112,7 +112,7 @@ config RISCV
select GENERIC_IRQ_SHOW_LEVEL
select GENERIC_LIB_DEVMEM_IS_ALLOWED
select GENERIC_PCI_IOMAP
- select GENERIC_PTDUMP if MMU
+ select PTDUMP_CORE if MMU
select GENERIC_SCHED_CLOCK
select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 9c9ec08d78c7..ecf6b4cb3e33 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -163,7 +163,7 @@ config S390
select GENERIC_CPU_VULNERABILITIES
select GENERIC_ENTRY
select GENERIC_GETTIMEOFDAY
- select GENERIC_PTDUMP
+ select PTDUMP_CORE
select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_TIME_NS
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 87198d957e2f..b6097b6178de 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -174,7 +174,7 @@ config X86
select GENERIC_IRQ_RESERVATION_MODE
select GENERIC_IRQ_SHOW
select GENERIC_PENDING_IRQ if SMP
- select GENERIC_PTDUMP
+ select PTDUMP_CORE
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..090c44d7e1a5 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
+ depends on PTDUMP_CORE
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/kernel/configs/debug.config b/kernel/configs/debug.config
index 20552f163930..8aafd050b754 100644
--- a/kernel/configs/debug.config
+++ b/kernel/configs/debug.config
@@ -73,7 +73,6 @@ CONFIG_DEBUG_VM=y
CONFIG_DEBUG_VM_PGFLAGS=y
CONFIG_DEBUG_VM_RB=y
CONFIG_DEBUG_VM_VMACACHE=y
-CONFIG_GENERIC_PTDUMP=y
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
CONFIG_KASAN_INLINE=y
diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
index 41a58536531d..b206e5a11f96 100644
--- a/mm/Kconfig.debug
+++ b/mm/Kconfig.debug
@@ -187,7 +187,7 @@ config DEBUG_WX
bool "Warn on W+X mappings at boot"
depends on ARCH_HAS_DEBUG_WX
depends on MMU
- select PTDUMP_CORE
+ depends on PTDUMP_CORE
help
Generate a warning if any W+X mappings are found at boot.
@@ -212,9 +212,6 @@ config DEBUG_WX
If in doubt, say "Y".
-config GENERIC_PTDUMP
- bool
-
config PTDUMP_CORE
bool
@@ -222,8 +219,7 @@ 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 PTDUMP_CORE
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
--
2.30.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH V2] mm/ptdump: Drop GENERIC_PTDUMP
2025-02-05 5:00 [PATCH V2] mm/ptdump: Drop GENERIC_PTDUMP Anshuman Khandual
@ 2025-02-05 10:01 ` Mark Rutland
2025-02-06 4:21 ` Anshuman Khandual
0 siblings, 1 reply; 3+ messages in thread
From: Mark Rutland @ 2025-02-05 10:01 UTC (permalink / raw)
To: Anshuman Khandual
Cc: linux-mm, steven.price, christophe.leroy, Catalin Marinas,
Will Deacon, Jonathan Corbet, Marc Zyngier, Michael Ellerman,
Nicholas Piggin, Paul Walmsley, Palmer Dabbelt, Heiko Carstens,
Vasily Gorbik, Thomas Gleixner, Ingo Molnar, Andrew Morton,
linux-arm-kernel, linux-doc, linux-kernel, kvmarm, linuxppc-dev,
linux-riscv, linux-s390
On Wed, Feb 05, 2025 at 10:30:39AM +0530, Anshuman Khandual wrote:
> GENERIC_PTDUMP does not guard any code but instead just used for platform's
> subscription into core ptdump defined under PTDUMP_CORE, which is selected.
Selected by what?
> Instead use PTDUMP_CORE for platform subscription and drop GENERIC_PTDUMP.
> 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>
> ---
> This patch applies on v6.14-rc1
>
> Changes in V2:
>
> - Keep arch/powerpc/Kconfig alphabetically sorted per Christophe
>
> Changes in V1:
>
> https://lore.kernel.org/all/20241217034807.2541349-1-anshuman.khandual@arm.com/
>
> Documentation/arch/arm64/ptdump.rst | 1 -
> arch/arm64/Kconfig | 2 +-
> arch/arm64/kvm/Kconfig | 3 +--
> arch/powerpc/Kconfig | 2 +-
> arch/powerpc/configs/mpc885_ads_defconfig | 1 -
> arch/riscv/Kconfig | 2 +-
> arch/s390/Kconfig | 2 +-
> arch/x86/Kconfig | 2 +-
> arch/x86/Kconfig.debug | 2 +-
> kernel/configs/debug.config | 1 -
> mm/Kconfig.debug | 8 ++------
> 11 files changed, 9 insertions(+), 17 deletions(-)
>
> diff --git a/Documentation/arch/arm64/ptdump.rst b/Documentation/arch/arm64/ptdump.rst
> index 5dcfc5d7cddf..61ca040a885b 100644
> --- a/Documentation/arch/arm64/ptdump.rst
> +++ b/Documentation/arch/arm64/ptdump.rst
> @@ -22,7 +22,6 @@ 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_PTDUMP_DEBUGFS=y
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index fcdd0ed3eca8..1f516bed81dd 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -157,7 +157,7 @@ config ARM64
> select GENERIC_IRQ_SHOW_LEVEL
> select GENERIC_LIB_DEVMEM_IS_ALLOWED
> select GENERIC_PCI_IOMAP
> - select GENERIC_PTDUMP
> + select PTDUMP_CORE
> select GENERIC_SCHED_CLOCK
> select GENERIC_SMP_IDLE_THREAD
> select GENERIC_TIME_VSYSCALL
This change means that the ptdump core code will be built regardless of
whether any users are selected:
[mark@lakrids:~/src/linux]% git grep CONFIG_PTDUMP_CORE
Documentation/arch/arm64/ptdump.rst: CONFIG_PTDUMP_CORE=y
arch/arm64/include/asm/ptdump.h:#ifdef CONFIG_PTDUMP_CORE
arch/arm64/include/asm/ptdump.h:#endif /* CONFIG_PTDUMP_CORE */
arch/arm64/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
arch/powerpc/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump/
arch/riscv/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
arch/s390/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += dump_pagetables.o
arch/x86/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += dump_pagetables.o
mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
GENERIC_PTDUMP means "this architecture uses generic ptdump code for
ptdump", i.e. the architecture implements all the necessary bits for
that to work *IF* it is built.
PTDUMP_CORE means "actually build the core ptdump code".
If everyone uses the generic ptdump code now, maybe it's worth renaming
GENERIC_PTDUMP to ARCH_HAS_PTDUMP or something like that, but I don't
think this change makes sense as-is.
[...]
> diff --git a/kernel/configs/debug.config b/kernel/configs/debug.config
> index 20552f163930..8aafd050b754 100644
> --- a/kernel/configs/debug.config
> +++ b/kernel/configs/debug.config
> @@ -73,7 +73,6 @@ CONFIG_DEBUG_VM=y
> CONFIG_DEBUG_VM_PGFLAGS=y
> CONFIG_DEBUG_VM_RB=y
> CONFIG_DEBUG_VM_VMACACHE=y
> -CONFIG_GENERIC_PTDUMP=y
> CONFIG_KASAN=y
> CONFIG_KASAN_GENERIC=y
> CONFIG_KASAN_INLINE=y
I think this is wrong today, and removing it is the right thing to do.
Architectures with support will select this themselves, and on
architectures without support this either does nothing or causes a build
failure.
Mark.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH V2] mm/ptdump: Drop GENERIC_PTDUMP
2025-02-05 10:01 ` Mark Rutland
@ 2025-02-06 4:21 ` Anshuman Khandual
0 siblings, 0 replies; 3+ messages in thread
From: Anshuman Khandual @ 2025-02-06 4:21 UTC (permalink / raw)
To: Mark Rutland
Cc: linux-mm, steven.price, christophe.leroy, Catalin Marinas,
Will Deacon, Jonathan Corbet, Marc Zyngier, Michael Ellerman,
Nicholas Piggin, Paul Walmsley, Palmer Dabbelt, Heiko Carstens,
Vasily Gorbik, Thomas Gleixner, Ingo Molnar, Andrew Morton,
linux-arm-kernel, linux-doc, linux-kernel, kvmarm, linuxppc-dev,
linux-riscv, linux-s390
On 2/5/25 15:31, Mark Rutland wrote:
> On Wed, Feb 05, 2025 at 10:30:39AM +0530, Anshuman Khandual wrote:
>> GENERIC_PTDUMP does not guard any code but instead just used for platform's
>> subscription into core ptdump defined under PTDUMP_CORE, which is selected.
>
> Selected by what?
I guess that sentence was incomplete. PTDUMP_CORE gets selected by all
the real users which requires core PTDUMP to be built and enabled.
arch/arm64/kvm/Kconfig: select PTDUMP_CORE /* config PTDUMP_STAGE2_DEBUGFS */
arch/x86/Kconfig.debug: select PTDUMP_CORE /* config EFI_PGT_DUMP */
mm/Kconfig.debug: select PTDUMP_CORE /* config PTDUMP_DEBUGFS */
mm/Kconfig.debug: select PTDUMP_CORE /* config DEBUG_WX */
>
>> Instead use PTDUMP_CORE for platform subscription and drop GENERIC_PTDUMP.
>> 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>
>> ---
>> This patch applies on v6.14-rc1
>>
>> Changes in V2:
>>
>> - Keep arch/powerpc/Kconfig alphabetically sorted per Christophe
>>
>> Changes in V1:
>>
>> https://lore.kernel.org/all/20241217034807.2541349-1-anshuman.khandual@arm.com/
>>
>> Documentation/arch/arm64/ptdump.rst | 1 -
>> arch/arm64/Kconfig | 2 +-
>> arch/arm64/kvm/Kconfig | 3 +--
>> arch/powerpc/Kconfig | 2 +-
>> arch/powerpc/configs/mpc885_ads_defconfig | 1 -
>> arch/riscv/Kconfig | 2 +-
>> arch/s390/Kconfig | 2 +-
>> arch/x86/Kconfig | 2 +-
>> arch/x86/Kconfig.debug | 2 +-
>> kernel/configs/debug.config | 1 -
>> mm/Kconfig.debug | 8 ++------
>> 11 files changed, 9 insertions(+), 17 deletions(-)
>>
>> diff --git a/Documentation/arch/arm64/ptdump.rst b/Documentation/arch/arm64/ptdump.rst
>> index 5dcfc5d7cddf..61ca040a885b 100644
>> --- a/Documentation/arch/arm64/ptdump.rst
>> +++ b/Documentation/arch/arm64/ptdump.rst
>> @@ -22,7 +22,6 @@ 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_PTDUMP_DEBUGFS=y
>>
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index fcdd0ed3eca8..1f516bed81dd 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -157,7 +157,7 @@ config ARM64
>> select GENERIC_IRQ_SHOW_LEVEL
>> select GENERIC_LIB_DEVMEM_IS_ALLOWED
>> select GENERIC_PCI_IOMAP
>> - select GENERIC_PTDUMP
>> + select PTDUMP_CORE
>> select GENERIC_SCHED_CLOCK
>> select GENERIC_SMP_IDLE_THREAD
>> select GENERIC_TIME_VSYSCALL
>
> This change means that the ptdump core code will be built regardless of
> whether any users are selected:
>
> [mark@lakrids:~/src/linux]% git grep CONFIG_PTDUMP_CORE
> Documentation/arch/arm64/ptdump.rst: CONFIG_PTDUMP_CORE=y
> arch/arm64/include/asm/ptdump.h:#ifdef CONFIG_PTDUMP_CORE
> arch/arm64/include/asm/ptdump.h:#endif /* CONFIG_PTDUMP_CORE */
> arch/arm64/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
> arch/powerpc/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump/
> arch/riscv/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
> arch/s390/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += dump_pagetables.o
> arch/x86/mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += dump_pagetables.o
> mm/Makefile:obj-$(CONFIG_PTDUMP_CORE) += ptdump.o
>
> GENERIC_PTDUMP means "this architecture uses generic ptdump code for
> ptdump", i.e. the architecture implements all the necessary bits for
> that to work *IF* it is built.
>
> PTDUMP_CORE means "actually build the core ptdump code".
>
> If everyone uses the generic ptdump code now, maybe it's worth renaming
> GENERIC_PTDUMP to ARCH_HAS_PTDUMP or something like that, but I don't
> think this change makes sense as-is.
Seems like a combination of ARCH_HAS_CORE_PTDUMP for subscription and
CORE_PTDUMP for actual enablement will make things clear. _CORE_ here
would still let platforms define their own CONFIG_PTDUMP if preferred
and not subscribe the generic CORE_DUMP.
currently GENERIC_PTDUMP and CORE_PTDUMP just seems disjoint, because
GENERIC_PTDUMP does not not appear to be the platform opt in required
for CORE_PTDUMP.
There is another problem.
mm/Kconfig.debug
config DEBUG_WX
bool "Warn on W+X mappings at boot"
depends on ARCH_HAS_DEBUG_WX
depends on MMU
select PTDUMP_CORE
help
Before selecting PTDUMP_CORE it does not ensure platform has opted in
via GENERIC_PTDUMP or not. Instead it should be
config DEBUG_WX
bool "Warn on W+X mappings at boot"
depends on ARCH_HAS_DEBUG_WX
depends on GENERIC_PTDUMP
depends on
depends on MMU
select PTDUMP_CORE
help
PTDUMP_STAGE2_DEBUGFS on arm64 does that where as EFI_PGT_DUMP on x86
does not. Although it will be ideal but that's not a problem if the
platform knows for sure that it opts in GENERIC_PTDUMP.
>
> [...]
>
>> diff --git a/kernel/configs/debug.config b/kernel/configs/debug.config
>> index 20552f163930..8aafd050b754 100644
>> --- a/kernel/configs/debug.config
>> +++ b/kernel/configs/debug.config
>> @@ -73,7 +73,6 @@ CONFIG_DEBUG_VM=y
>> CONFIG_DEBUG_VM_PGFLAGS=y
>> CONFIG_DEBUG_VM_RB=y
>> CONFIG_DEBUG_VM_VMACACHE=y
>> -CONFIG_GENERIC_PTDUMP=y
>> CONFIG_KASAN=y
>> CONFIG_KASAN_GENERIC=y
>> CONFIG_KASAN_INLINE=y
>
> I think this is wrong today, and removing it is the right thing to do.
>
> Architectures with support will select this themselves, and on
> architectures without support this either does nothing or causes a build
> failure.
Alright, will separate this change out first.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-02-06 4:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-05 5:00 [PATCH V2] mm/ptdump: Drop GENERIC_PTDUMP Anshuman Khandual
2025-02-05 10:01 ` Mark Rutland
2025-02-06 4:21 ` Anshuman Khandual
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox