mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
![Zachary Amsden](/assets/img/avatar_default.png)
Deliberate register clobber around performance critical inline code is great for testing, bad to leave on by default. Many people ship with DEBUG_KERNEL turned on, so stop making DEBUG_PARAVIRT default on. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Andi Kleen <ak@suse.de>
98 lines
3.1 KiB
Text
98 lines
3.1 KiB
Text
menu "Kernel hacking"
|
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
|
bool
|
|
default y
|
|
|
|
source "lib/Kconfig.debug"
|
|
|
|
config EARLY_PRINTK
|
|
bool "Early printk" if EMBEDDED && DEBUG_KERNEL
|
|
default y
|
|
help
|
|
Write kernel log output directly into the VGA buffer or to a serial
|
|
port.
|
|
|
|
This is useful for kernel debugging when your machine crashes very
|
|
early before the console code is initialized. For normal operation
|
|
it is not recommended because it looks ugly and doesn't cooperate
|
|
with klogd/syslogd or the X server. You should normally N here,
|
|
unless you want to debug such a crash.
|
|
|
|
config DEBUG_STACKOVERFLOW
|
|
bool "Check for stack overflows"
|
|
depends on DEBUG_KERNEL
|
|
help
|
|
This option will cause messages to be printed if free stack space
|
|
drops below a certain limit.
|
|
|
|
config DEBUG_STACK_USAGE
|
|
bool "Stack utilization instrumentation"
|
|
depends on DEBUG_KERNEL
|
|
help
|
|
Enables the display of the minimum amount of free stack which each
|
|
task has ever had available in the sysrq-T and sysrq-P debug output.
|
|
|
|
This option will slow down process creation somewhat.
|
|
|
|
comment "Page alloc debug is incompatible with Software Suspend on i386"
|
|
depends on DEBUG_KERNEL && SOFTWARE_SUSPEND
|
|
|
|
config DEBUG_PAGEALLOC
|
|
bool "Debug page memory allocations"
|
|
depends on DEBUG_KERNEL && !SOFTWARE_SUSPEND && !HUGETLBFS
|
|
help
|
|
Unmap pages from the kernel linear mapping after free_pages().
|
|
This results in a large slowdown, but helps to find certain types
|
|
of memory corruptions.
|
|
|
|
config DEBUG_RODATA
|
|
bool "Write protect kernel read-only data structures"
|
|
depends on DEBUG_KERNEL
|
|
help
|
|
Mark the kernel read-only data as write-protected in the pagetables,
|
|
in order to catch accidental (and incorrect) writes to such const
|
|
data. This option may have a slight performance impact because a
|
|
portion of the kernel code won't be covered by a 2MB TLB anymore.
|
|
If in doubt, say "N".
|
|
|
|
config 4KSTACKS
|
|
bool "Use 4Kb for kernel stacks instead of 8Kb"
|
|
depends on DEBUG_KERNEL
|
|
help
|
|
If you say Y here the kernel will use a 4Kb stacksize for the
|
|
kernel stack attached to each process/thread. This facilitates
|
|
running more threads on a system and also reduces the pressure
|
|
on the VM subsystem for higher order allocations. This option
|
|
will also use IRQ stacks to compensate for the reduced stackspace.
|
|
|
|
config X86_FIND_SMP_CONFIG
|
|
bool
|
|
depends on X86_LOCAL_APIC || X86_VOYAGER
|
|
default y
|
|
|
|
config X86_MPPARSE
|
|
bool
|
|
depends on X86_LOCAL_APIC && !X86_VISWS
|
|
default y
|
|
|
|
config DOUBLEFAULT
|
|
default y
|
|
bool "Enable doublefault exception handler" if EMBEDDED
|
|
help
|
|
This option allows trapping of rare doublefault exceptions that
|
|
would otherwise cause a system to silently reboot. Disabling this
|
|
option saves about 4k and might cause you much additional grey
|
|
hair.
|
|
|
|
config DEBUG_PARAVIRT
|
|
bool "Enable some paravirtualization debugging"
|
|
default n
|
|
depends on PARAVIRT && DEBUG_KERNEL
|
|
help
|
|
Currently deliberately clobbers regs which are allowed to be
|
|
clobbered in inlined paravirt hooks, even in native mode.
|
|
If turning this off solves a problem, then DISABLE_INTERRUPTS() or
|
|
ENABLE_INTERRUPTS() is lying about what registers can be clobbered.
|
|
|
|
endmenu
|