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 <[email protected]>
> ---
> 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) <[email protected]>

Reply via email to