Message ID | 20191122225659.21876-3-paul.walmsley@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | riscv: defconfigs: enable debugging options | expand |
On Fri, 22 Nov 2019 14:56:59 PST (-0800), Paul Walmsley wrote: > Enable more debugging options in the RISC-V defconfigs to help kernel > developers catch problems with patches earlier in the development > cycle. > > 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 > +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 > 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 Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
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
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 +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 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
Enable more debugging options in the RISC-V defconfigs to help kernel developers catch problems with patches earlier in the development cycle. 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(+)