Messages in this thread | | | From | Anup Patel <> | Date | Sat, 23 Nov 2019 09:55:54 +0530 | Subject | Re: [PATCH 2/2] riscv: defconfigs: enable more debugging options |
| |
On Sat, Nov 23, 2019 at 4:28 AM Paul Walmsley <paul.walmsley@sifive.com> wrote: > > Enable more debugging options in the RISC-V defconfigs to help kernel > developers catch problems with patches earlier in the development > cycle.
Lot the debug options enabled by this patch have big performance impact. I would suggest to have separate debug defconfig for RV32 and RV64 with debug options enabled instead of enabling these in regular defconfigs.
> > Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com> > --- > arch/riscv/configs/defconfig | 23 +++++++++++++++++++++++ > arch/riscv/configs/rv32_defconfig | 23 +++++++++++++++++++++++ > 2 files changed, 46 insertions(+) > > diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig > index f0710d8f50cc..e2ff95cb3390 100644 > --- a/arch/riscv/configs/defconfig > +++ b/arch/riscv/configs/defconfig > @@ -101,4 +101,27 @@ CONFIG_CRYPTO_USER_API_HASH=y > CONFIG_CRYPTO_DEV_VIRTIO=y > CONFIG_PRINTK_TIME=y > CONFIG_DEBUG_FS=y > +CONFIG_DEBUG_PAGEALLOC=y > +CONFIG_DEBUG_VM=y > +CONFIG_DEBUG_VM_PGFLAGS=y > +CONFIG_DEBUG_MEMORY_INIT=y > +CONFIG_DEBUG_PER_CPU_MAPS=y
> +CONFIG_SOFTLOCKUP_DETECTOR=y
This one is fine.
> +CONFIG_WQ_WATCHDOG=y
Is WQ_WATCHDOG as debug option ?
> +CONFIG_SCHED_STACK_END_CHECK=y > +CONFIG_DEBUG_TIMEKEEPING=y > +CONFIG_DEBUG_RT_MUTEXES=y > +CONFIG_DEBUG_SPINLOCK=y > +CONFIG_DEBUG_MUTEXES=y > +CONFIG_DEBUG_RWSEMS=y > +CONFIG_DEBUG_ATOMIC_SLEEP=y > +CONFIG_STACKTRACE=y > +CONFIG_DEBUG_LIST=y > +CONFIG_DEBUG_PLIST=y > +CONFIG_DEBUG_SG=y
All these debug options reduce kernel performance in a noticeable way. Please have separate defconfig for these options.
> # CONFIG_RCU_TRACE is not set > +CONFIG_RCU_EQS_DEBUG=y > +CONFIG_DEBUG_BLOCK_EXT_DEVT=y > +# CONFIG_FTRACE is not set > +# CONFIG_RUNTIME_TESTING_MENU is not set > +CONFIG_MEMTEST=y > diff --git a/arch/riscv/configs/rv32_defconfig b/arch/riscv/configs/rv32_defconfig > index bdec58e6c5f7..eb519407c841 100644 > --- a/arch/riscv/configs/rv32_defconfig > +++ b/arch/riscv/configs/rv32_defconfig > @@ -98,4 +98,27 @@ CONFIG_CRYPTO_USER_API_HASH=y > CONFIG_CRYPTO_DEV_VIRTIO=y > CONFIG_PRINTK_TIME=y > CONFIG_DEBUG_FS=y > +CONFIG_DEBUG_PAGEALLOC=y > +CONFIG_DEBUG_VM=y > +CONFIG_DEBUG_VM_PGFLAGS=y > +CONFIG_DEBUG_MEMORY_INIT=y > +CONFIG_DEBUG_PER_CPU_MAPS=y > +CONFIG_SOFTLOCKUP_DETECTOR=y > +CONFIG_WQ_WATCHDOG=y > +CONFIG_SCHED_STACK_END_CHECK=y > +CONFIG_DEBUG_TIMEKEEPING=y > +CONFIG_DEBUG_RT_MUTEXES=y > +CONFIG_DEBUG_SPINLOCK=y > +CONFIG_DEBUG_MUTEXES=y > +CONFIG_DEBUG_RWSEMS=y > +CONFIG_DEBUG_ATOMIC_SLEEP=y > +CONFIG_STACKTRACE=y > +CONFIG_DEBUG_LIST=y > +CONFIG_DEBUG_PLIST=y > +CONFIG_DEBUG_SG=y > # CONFIG_RCU_TRACE is not set > +CONFIG_RCU_EQS_DEBUG=y > +CONFIG_DEBUG_BLOCK_EXT_DEVT=y > +# CONFIG_FTRACE is not set > +# CONFIG_RUNTIME_TESTING_MENU is not set > +CONFIG_MEMTEST=y
Same comments as above.
> -- > 2.24.0.rc0 >
The debug and trace instrumentation although helpful in development comes with performance overhead. We should be careful in enabling debug and trace options by default in defconfigs.
Regards, Anup
| |