Loading arch/x86/Kconfig.debug +88 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,94 @@ config DEFAULT_IO_DELAY_TYPE default IO_DELAY_TYPE_NONE endif menuconfig KMEMCHECK bool "kmemcheck: trap use of uninitialized memory" depends on DEBUG_KERNEL depends on !X86_USE_3DNOW depends on SLUB || SLAB depends on !CC_OPTIMIZE_FOR_SIZE depends on !FUNCTION_TRACER select FRAME_POINTER select STACKTRACE default n help This option enables tracing of dynamically allocated kernel memory to see if memory is used before it has been given an initial value. Be aware that this requires half of your memory for bookkeeping and will insert extra code at *every* read and write to tracked memory thus slow down the kernel code (but user code is unaffected). The kernel may be started with kmemcheck=0 or kmemcheck=1 to disable or enable kmemcheck at boot-time. If the kernel is started with kmemcheck=0, the large memory and CPU overhead is not incurred. choice prompt "kmemcheck: default mode at boot" depends on KMEMCHECK default KMEMCHECK_ONESHOT_BY_DEFAULT help This option controls the default behaviour of kmemcheck when the kernel boots and no kmemcheck= parameter is given. config KMEMCHECK_DISABLED_BY_DEFAULT bool "disabled" depends on KMEMCHECK config KMEMCHECK_ENABLED_BY_DEFAULT bool "enabled" depends on KMEMCHECK config KMEMCHECK_ONESHOT_BY_DEFAULT bool "one-shot" depends on KMEMCHECK help In one-shot mode, only the first error detected is reported before kmemcheck is disabled. endchoice config KMEMCHECK_QUEUE_SIZE int "kmemcheck: error queue size" depends on KMEMCHECK default 64 help Select the maximum number of errors to store in the queue. Since errors can occur virtually anywhere and in any context, we need a temporary storage area which is guarantueed not to generate any other faults. The queue will be emptied as soon as a tasklet may be scheduled. If the queue is full, new error reports will be lost. config KMEMCHECK_SHADOW_COPY_SHIFT int "kmemcheck: shadow copy size (5 => 32 bytes, 6 => 64 bytes)" depends on KMEMCHECK range 2 8 default 5 help Select the number of shadow bytes to save along with each entry of the queue. These bytes indicate what parts of an allocation are initialized, uninitialized, etc. and will be displayed when an error is detected to help the debugging of a particular problem. config KMEMCHECK_PARTIAL_OK bool "kmemcheck: allow partially uninitialized memory" depends on KMEMCHECK default y help This option works around certain GCC optimizations that produce 32-bit reads from 16-bit variables where the upper 16 bits are thrown away afterwards. This may of course also hide some real bugs. config KMEMCHECK_BITOPS_OK bool "kmemcheck: allow bit-field manipulation" depends on KMEMCHECK default n help This option silences warnings that would be generated for bit-field accesses where not all the bits are initialized at the same time. This may also hide some real bugs. config DEBUG_BOOT_PARAMS bool "Debug boot parameters" depends on DEBUG_KERNEL Loading lib/Kconfig.debug +2 −2 Original line number Diff line number Diff line Loading @@ -300,7 +300,7 @@ config DEBUG_OBJECTS_ENABLE_DEFAULT config DEBUG_SLAB bool "Debug slab memory allocations" depends on DEBUG_KERNEL && SLAB depends on DEBUG_KERNEL && SLAB && !KMEMCHECK help Say Y here to have the kernel do limited verification on memory allocation as well as poisoning memory on free to catch use of freed Loading @@ -312,7 +312,7 @@ config DEBUG_SLAB_LEAK config SLUB_DEBUG_ON bool "SLUB debugging on by default" depends on SLUB && SLUB_DEBUG depends on SLUB && SLUB_DEBUG && !KMEMCHECK default n help Boot with debugging on by default. SLUB boots by default with Loading mm/Kconfig.debug +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ config DEBUG_PAGEALLOC bool "Debug page memory allocations" depends on DEBUG_KERNEL && ARCH_SUPPORTS_DEBUG_PAGEALLOC depends on !HIBERNATION || !PPC && !SPARC depends on !KMEMCHECK ---help--- Unmap pages from the kernel linear mapping after free_pages(). This results in a large slowdown, but helps to find certain types Loading Loading
arch/x86/Kconfig.debug +88 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,94 @@ config DEFAULT_IO_DELAY_TYPE default IO_DELAY_TYPE_NONE endif menuconfig KMEMCHECK bool "kmemcheck: trap use of uninitialized memory" depends on DEBUG_KERNEL depends on !X86_USE_3DNOW depends on SLUB || SLAB depends on !CC_OPTIMIZE_FOR_SIZE depends on !FUNCTION_TRACER select FRAME_POINTER select STACKTRACE default n help This option enables tracing of dynamically allocated kernel memory to see if memory is used before it has been given an initial value. Be aware that this requires half of your memory for bookkeeping and will insert extra code at *every* read and write to tracked memory thus slow down the kernel code (but user code is unaffected). The kernel may be started with kmemcheck=0 or kmemcheck=1 to disable or enable kmemcheck at boot-time. If the kernel is started with kmemcheck=0, the large memory and CPU overhead is not incurred. choice prompt "kmemcheck: default mode at boot" depends on KMEMCHECK default KMEMCHECK_ONESHOT_BY_DEFAULT help This option controls the default behaviour of kmemcheck when the kernel boots and no kmemcheck= parameter is given. config KMEMCHECK_DISABLED_BY_DEFAULT bool "disabled" depends on KMEMCHECK config KMEMCHECK_ENABLED_BY_DEFAULT bool "enabled" depends on KMEMCHECK config KMEMCHECK_ONESHOT_BY_DEFAULT bool "one-shot" depends on KMEMCHECK help In one-shot mode, only the first error detected is reported before kmemcheck is disabled. endchoice config KMEMCHECK_QUEUE_SIZE int "kmemcheck: error queue size" depends on KMEMCHECK default 64 help Select the maximum number of errors to store in the queue. Since errors can occur virtually anywhere and in any context, we need a temporary storage area which is guarantueed not to generate any other faults. The queue will be emptied as soon as a tasklet may be scheduled. If the queue is full, new error reports will be lost. config KMEMCHECK_SHADOW_COPY_SHIFT int "kmemcheck: shadow copy size (5 => 32 bytes, 6 => 64 bytes)" depends on KMEMCHECK range 2 8 default 5 help Select the number of shadow bytes to save along with each entry of the queue. These bytes indicate what parts of an allocation are initialized, uninitialized, etc. and will be displayed when an error is detected to help the debugging of a particular problem. config KMEMCHECK_PARTIAL_OK bool "kmemcheck: allow partially uninitialized memory" depends on KMEMCHECK default y help This option works around certain GCC optimizations that produce 32-bit reads from 16-bit variables where the upper 16 bits are thrown away afterwards. This may of course also hide some real bugs. config KMEMCHECK_BITOPS_OK bool "kmemcheck: allow bit-field manipulation" depends on KMEMCHECK default n help This option silences warnings that would be generated for bit-field accesses where not all the bits are initialized at the same time. This may also hide some real bugs. config DEBUG_BOOT_PARAMS bool "Debug boot parameters" depends on DEBUG_KERNEL Loading
lib/Kconfig.debug +2 −2 Original line number Diff line number Diff line Loading @@ -300,7 +300,7 @@ config DEBUG_OBJECTS_ENABLE_DEFAULT config DEBUG_SLAB bool "Debug slab memory allocations" depends on DEBUG_KERNEL && SLAB depends on DEBUG_KERNEL && SLAB && !KMEMCHECK help Say Y here to have the kernel do limited verification on memory allocation as well as poisoning memory on free to catch use of freed Loading @@ -312,7 +312,7 @@ config DEBUG_SLAB_LEAK config SLUB_DEBUG_ON bool "SLUB debugging on by default" depends on SLUB && SLUB_DEBUG depends on SLUB && SLUB_DEBUG && !KMEMCHECK default n help Boot with debugging on by default. SLUB boots by default with Loading
mm/Kconfig.debug +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ config DEBUG_PAGEALLOC bool "Debug page memory allocations" depends on DEBUG_KERNEL && ARCH_SUPPORTS_DEBUG_PAGEALLOC depends on !HIBERNATION || !PPC && !SPARC depends on !KMEMCHECK ---help--- Unmap pages from the kernel linear mapping after free_pages(). This results in a large slowdown, but helps to find certain types Loading