menu "Kernel hacking"

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.

config STACK_BACKTRACE_COLS
	int "Stack backtraces per line" if DEBUG_KERNEL
	range 1 3
	default 2
	help
	  Selects how many stack backtrace entries per line to display.

	  This can save screen space when displaying traces.

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.

endmenu
