* [PATCH v2] powerpc/configs: Add debug configs for debugging
@ 2026-08-27 12:13 Gautam Menghani
2026-08-31 4:58 ` Mukesh Kumar Chaurasiya
2026-10-12 8:50 ` Gautam Menghani
0 siblings, 2 replies; 5+ messages in thread
From: Gautam Menghani @ 2026-08-27 12:13 UTC (permalink / raw)
To: maddy, mpe, npiggin, chleroy, ritesh.list, sshegde
Cc: Gautam Menghani, linuxppc-dev, linux-kernel
Kernel has multiple config options to run extra validation checks that
can help catch bugs. Define new configs for major subsystems to
make it easy to enable the debug config options for a given area.
Signed-off-by: Gautam Menghani <gautam@linux.ibm.com>
---
v1 -> v2:
1. Split the enablement of configs into pseries and powernv configs.
arch/powerpc/Makefile | 32 ++++++++++++++++++++++++
arch/powerpc/configs/common_debug.config | 11 ++++++++
arch/powerpc/configs/locks_debug.config | 13 ++++++++++
arch/powerpc/configs/lockup_debug.config | 4 +++
arch/powerpc/configs/mm_debug.config | 24 ++++++++++++++++++
5 files changed, 84 insertions(+)
create mode 100644 arch/powerpc/configs/common_debug.config
create mode 100644 arch/powerpc/configs/locks_debug.config
create mode 100644 arch/powerpc/configs/lockup_debug.config
create mode 100644 arch/powerpc/configs/mm_debug.config
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9385db478c59..818aacace875 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -352,6 +352,38 @@ ppc64_randconfig:
$(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/64-bit.config \
-f $(srctree)/Makefile randconfig
+generated_configs += pseries_debug_defconfig
+pseries_debug_defconfig:
+ $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest common_debug)
+
+generated_configs += pseries_locks_debug_defconfig
+pseries_locks_debug_defconfig:
+ $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest locks_debug)
+
+generated_configs += pseries_mm_debug_defconfig
+pseries_mm_debug_defconfig:
+ $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest mm_debug)
+
+generated_configs += pseries_lockup_debug_defconfig
+pseries_lockup_debug_defconfig:
+ $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest lockup_debug)
+
+generated_configs += powernv_debug_defconfig
+powernv_debug_defconfig:
+ $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest common_debug)
+
+generated_configs += powernv_locks_debug_defconfig
+powernv_locks_debug_defconfig:
+ $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest locks_debug)
+
+generated_configs += powernv_mm_debug_defconfig
+powernv_mm_debug_defconfig:
+ $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest mm_debug)
+
+generated_configs += powernv_lockup_debug_defconfig
+powernv_lockup_debug_defconfig:
+ $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest lockup_debug)
+
PHONY += $(generated_configs)
define archhelp
diff --git a/arch/powerpc/configs/common_debug.config b/arch/powerpc/configs/common_debug.config
new file mode 100644
index 000000000000..a341c8b41468
--- /dev/null
+++ b/arch/powerpc/configs/common_debug.config
@@ -0,0 +1,11 @@
+# For use in CI testing
+CONFIG_EXPERT=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_PROVE_RCU=y
+CONFIG_KASAN=y
+CONFIG_UBSAN=y
+CONFIG_DEBUG_PAGEALLOC=y
+CONFIG_DEBUG_VM=y
+CONFIG_DEBUG_OBJECTS=y
+CONFIG_DEBUG_KMEMLEAK=y
+CONFIG_DEBUG_STACKOVERFLOW=y
diff --git a/arch/powerpc/configs/locks_debug.config b/arch/powerpc/configs/locks_debug.config
new file mode 100644
index 000000000000..b2cb23de75db
--- /dev/null
+++ b/arch/powerpc/configs/locks_debug.config
@@ -0,0 +1,13 @@
+CONFIG_EXPERT=y
+CONFIG_PROVE_LOCKING=y
+CONFIG_DEBUG_LOCK_ALLOC=y
+CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_RWSEMS=y
+CONFIG_PROVE_RAW_LOCK_NESTING=y
+CONFIG_RCU_EXPERT=y
+CONFIG_PROVE_RCU=y
+CONFIG_RCU_TRACE=y
diff --git a/arch/powerpc/configs/lockup_debug.config b/arch/powerpc/configs/lockup_debug.config
new file mode 100644
index 000000000000..ad0a79abf60f
--- /dev/null
+++ b/arch/powerpc/configs/lockup_debug.config
@@ -0,0 +1,4 @@
+CONFIG_EXPERT=y
+CONFIG_WQ_WATCHDOG=y
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_PANIC_ON_OOPS=y
diff --git a/arch/powerpc/configs/mm_debug.config b/arch/powerpc/configs/mm_debug.config
new file mode 100644
index 000000000000..0e88eb983536
--- /dev/null
+++ b/arch/powerpc/configs/mm_debug.config
@@ -0,0 +1,24 @@
+CONFIG_EXPERT=y
+CONFIG_DEBUG_PAGEALLOC=y
+CONFIG_DEBUG_SLAB=y
+CONFIG_KASAN=y
+CONFIG_KFENCE=y
+CONFIG_KMSAN=y
+CONFIG_DEBUG_KMEMLEAK=y
+CONFIG_DEBUG_VM=y
+CONFIG_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_OBJECTS=y
+CONFIG_DEBUG_OBJECTS_FREE=y
+CONFIG_DEBUG_OBJECTS_TIMERS=y
+CONFIG_DEBUG_OBJECTS_WORK=y
+CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
+CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
+CONFIG_SCHED_STACK_END_CHECK=y
+CONFIG_DEBUG_VM_MAPLE_TREE=y
+CONFIG_DEBUG_VM_RB=y
+CONFIG_DEBUG_VM_PGFLAGS=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_DEBUG_PER_CPU_MAPS=y
+CONFIG_DEBUG_KMAP_LOCAL=y
+CONFIG_DEBUG_HIGHMEM=y
+CONFIG_DEBUG_STACKOVERFLOW=y
--
2.54.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] powerpc/configs: Add debug configs for debugging
2026-08-27 12:13 [PATCH v2] powerpc/configs: Add debug configs for debugging Gautam Menghani
@ 2026-08-31 4:58 ` Mukesh Kumar Chaurasiya
2026-10-12 8:50 ` Gautam Menghani
1 sibling, 0 replies; 5+ messages in thread
From: Mukesh Kumar Chaurasiya @ 2026-08-31 4:58 UTC (permalink / raw)
To: Gautam Menghani
Cc: maddy, mpe, npiggin, chleroy, ritesh.list, sshegde, linuxppc-dev,
linux-kernel
On Thu, Aug 27, 2026 at 05:43:08PM +0530, Gautam Menghani wrote:
> Kernel has multiple config options to run extra validation checks that
> can help catch bugs. Define new configs for major subsystems to
> make it easy to enable the debug config options for a given area.
>
> Signed-off-by: Gautam Menghani <gautam@linux.ibm.com>
> ---
> v1 -> v2:
> 1. Split the enablement of configs into pseries and powernv configs.
>
> arch/powerpc/Makefile | 32 ++++++++++++++++++++++++
> arch/powerpc/configs/common_debug.config | 11 ++++++++
> arch/powerpc/configs/locks_debug.config | 13 ++++++++++
> arch/powerpc/configs/lockup_debug.config | 4 +++
> arch/powerpc/configs/mm_debug.config | 24 ++++++++++++++++++
> 5 files changed, 84 insertions(+)
> create mode 100644 arch/powerpc/configs/common_debug.config
> create mode 100644 arch/powerpc/configs/locks_debug.config
> create mode 100644 arch/powerpc/configs/lockup_debug.config
> create mode 100644 arch/powerpc/configs/mm_debug.config
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 9385db478c59..818aacace875 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -352,6 +352,38 @@ ppc64_randconfig:
> $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/64-bit.config \
> -f $(srctree)/Makefile randconfig
>
> +generated_configs += pseries_debug_defconfig
> +pseries_debug_defconfig:
> + $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest common_debug)
> +
> +generated_configs += pseries_locks_debug_defconfig
> +pseries_locks_debug_defconfig:
> + $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest locks_debug)
> +
> +generated_configs += pseries_mm_debug_defconfig
> +pseries_mm_debug_defconfig:
> + $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest mm_debug)
> +
> +generated_configs += pseries_lockup_debug_defconfig
> +pseries_lockup_debug_defconfig:
> + $(call merge_into_defconfig,ppc64_defconfig,le guest kvm_guest lockup_debug)
> +
> +generated_configs += powernv_debug_defconfig
> +powernv_debug_defconfig:
> + $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest common_debug)
> +
> +generated_configs += powernv_locks_debug_defconfig
> +powernv_locks_debug_defconfig:
> + $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest locks_debug)
> +
> +generated_configs += powernv_mm_debug_defconfig
> +powernv_mm_debug_defconfig:
> + $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest mm_debug)
> +
> +generated_configs += powernv_lockup_debug_defconfig
> +powernv_lockup_debug_defconfig:
> + $(call merge_into_defconfig,powernv_defconfig,le guest kvm_guest lockup_debug)
> +
> PHONY += $(generated_configs)
>
> define archhelp
> diff --git a/arch/powerpc/configs/common_debug.config b/arch/powerpc/configs/common_debug.config
> new file mode 100644
> index 000000000000..a341c8b41468
> --- /dev/null
> +++ b/arch/powerpc/configs/common_debug.config
> @@ -0,0 +1,11 @@
> +# For use in CI testing
> +CONFIG_EXPERT=y
> +CONFIG_PROVE_LOCKING=y
> +CONFIG_PROVE_RCU=y
> +CONFIG_KASAN=y
> +CONFIG_UBSAN=y
> +CONFIG_DEBUG_PAGEALLOC=y
> +CONFIG_DEBUG_VM=y
> +CONFIG_DEBUG_OBJECTS=y
> +CONFIG_DEBUG_KMEMLEAK=y
> +CONFIG_DEBUG_STACKOVERFLOW=y
> diff --git a/arch/powerpc/configs/locks_debug.config b/arch/powerpc/configs/locks_debug.config
> new file mode 100644
> index 000000000000..b2cb23de75db
> --- /dev/null
> +++ b/arch/powerpc/configs/locks_debug.config
> @@ -0,0 +1,13 @@
> +CONFIG_EXPERT=y
> +CONFIG_PROVE_LOCKING=y
> +CONFIG_DEBUG_LOCK_ALLOC=y
> +CONFIG_DEBUG_ATOMIC_SLEEP=y
> +CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
> +CONFIG_DEBUG_MUTEXES=y
> +CONFIG_DEBUG_SPINLOCK=y
> +CONFIG_DEBUG_RT_MUTEXES=y
> +CONFIG_DEBUG_RWSEMS=y
> +CONFIG_PROVE_RAW_LOCK_NESTING=y
> +CONFIG_RCU_EXPERT=y
> +CONFIG_PROVE_RCU=y
> +CONFIG_RCU_TRACE=y
> diff --git a/arch/powerpc/configs/lockup_debug.config b/arch/powerpc/configs/lockup_debug.config
> new file mode 100644
> index 000000000000..ad0a79abf60f
> --- /dev/null
> +++ b/arch/powerpc/configs/lockup_debug.config
> @@ -0,0 +1,4 @@
> +CONFIG_EXPERT=y
> +CONFIG_WQ_WATCHDOG=y
> +CONFIG_DETECT_HUNG_TASK=y
> +CONFIG_PANIC_ON_OOPS=y
> diff --git a/arch/powerpc/configs/mm_debug.config b/arch/powerpc/configs/mm_debug.config
> new file mode 100644
> index 000000000000..0e88eb983536
> --- /dev/null
> +++ b/arch/powerpc/configs/mm_debug.config
> @@ -0,0 +1,24 @@
> +CONFIG_EXPERT=y
> +CONFIG_DEBUG_PAGEALLOC=y
> +CONFIG_DEBUG_SLAB=y
> +CONFIG_KASAN=y
> +CONFIG_KFENCE=y
> +CONFIG_KMSAN=y
> +CONFIG_DEBUG_KMEMLEAK=y
> +CONFIG_DEBUG_VM=y
> +CONFIG_DEBUG_VIRTUAL=y
> +CONFIG_DEBUG_OBJECTS=y
> +CONFIG_DEBUG_OBJECTS_FREE=y
> +CONFIG_DEBUG_OBJECTS_TIMERS=y
> +CONFIG_DEBUG_OBJECTS_WORK=y
> +CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
> +CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
> +CONFIG_SCHED_STACK_END_CHECK=y
> +CONFIG_DEBUG_VM_MAPLE_TREE=y
> +CONFIG_DEBUG_VM_RB=y
> +CONFIG_DEBUG_VM_PGFLAGS=y
> +CONFIG_DEBUG_MEMORY_INIT=y
> +CONFIG_DEBUG_PER_CPU_MAPS=y
> +CONFIG_DEBUG_KMAP_LOCAL=y
> +CONFIG_DEBUG_HIGHMEM=y
> +CONFIG_DEBUG_STACKOVERFLOW=y
> --
> 2.54.0
>
Thanks Gautam for this. we'll be able to catch a lot of issues earlier
with this.
Reviewed-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] powerpc/configs: Add debug configs for debugging
2026-08-27 12:13 [PATCH v2] powerpc/configs: Add debug configs for debugging Gautam Menghani
2026-08-31 4:58 ` Mukesh Kumar Chaurasiya
@ 2026-10-12 8:50 ` Gautam Menghani
2026-10-12 9:05 ` Shrikanth Hegde
1 sibling, 1 reply; 5+ messages in thread
From: Gautam Menghani @ 2026-10-12 8:50 UTC (permalink / raw)
To: maddy, mpe, npiggin, chleroy, ritesh.list, sshegde
Cc: linuxppc-dev, linux-kernel
Hi,
Can this patch be pulled in? Or is something else needed here?
Thanks,
Gautam
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] powerpc/configs: Add debug configs for debugging
2026-10-12 8:50 ` Gautam Menghani
@ 2026-10-12 9:05 ` Shrikanth Hegde
2026-10-12 13:26 ` Gautam Menghani
0 siblings, 1 reply; 5+ messages in thread
From: Shrikanth Hegde @ 2026-10-12 9:05 UTC (permalink / raw)
To: Gautam Menghani, maddy, mpe, npiggin, chleroy, ritesh.list
Cc: linuxppc-dev, linux-kernel
Hi Gautam.
On 10/12/26 2:20 PM, Gautam Menghani wrote:
> Hi,
>
> Can this patch be pulled in? Or is something else needed here?
>
> Thanks,
> Gautam
Why it can't be part of existing debug.config? Why add component specific
config and merge into def config?
Wouldn't that cause more confusion? If not, could you please add detail in
changelog on how one can make use of these?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] powerpc/configs: Add debug configs for debugging
2026-10-12 9:05 ` Shrikanth Hegde
@ 2026-10-12 13:26 ` Gautam Menghani
0 siblings, 0 replies; 5+ messages in thread
From: Gautam Menghani @ 2026-10-12 13:26 UTC (permalink / raw)
Cc: maddy, mpe, npiggin, chleroy, ritesh.list, linuxppc-dev, linux-kernel
On Mon, Oct 12, 2026 at 02:35:03PM +0530, Shrikanth Hegde wrote:
> Hi Gautam.
>
> On 10/12/26 2:20 PM, Gautam Menghani wrote:
> > Hi,
> >
> > Can this patch be pulled in? Or is something else needed here?
> >
> > Thanks,
> > Gautam
>
> Why it can't be part of existing debug.config? Why add component specific
> config and merge into def config?
>
> Wouldn't that cause more confusion? If not, could you please add detail in
> changelog on how one can make use of these?
The issue with adding all options to debug.config is that if all options
are enabled at the same time, performance will take a huge hit.
Grouping the options by area will enable devs to only enable a subset of
configs. With this patch, you can just do "make pseries_mm_debug_defconfig"
to enable mm specific options for example.
I'm open to suggestions if there is a cleaner way to accomplish this.
Thanks,
Gautam
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-12 13:26 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-27 12:13 [PATCH v2] powerpc/configs: Add debug configs for debugging Gautam Menghani
2026-08-31 4:58 ` Mukesh Kumar Chaurasiya
2026-10-12 8:50 ` Gautam Menghani
2026-10-12 9:05 ` Shrikanth Hegde
2026-10-12 13:26 ` Gautam Menghani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®