2005-04-17 06:20:36 +08:00
|
|
|
menu "Kernel hacking"
|
|
|
|
|
2006-07-03 15:24:43 +08:00
|
|
|
config TRACE_IRQFLAGS_SUPPORT
|
2007-10-25 06:50:43 +08:00
|
|
|
def_bool y
|
2006-07-03 15:24:43 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
source "lib/Kconfig.debug"
|
|
|
|
|
|
|
|
config EARLY_PRINTK
|
2007-10-29 20:49:36 +08:00
|
|
|
bool "Early printk" if EMBEDDED && DEBUG_KERNEL && X86_32
|
2005-04-17 06:20:36 +08:00
|
|
|
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
|
2005-07-28 02:44:23 +08:00
|
|
|
help
|
|
|
|
This option will cause messages to be printed if free stack space
|
|
|
|
drops below a certain limit.
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
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"
|
2007-07-30 05:24:36 +08:00
|
|
|
depends on DEBUG_KERNEL && HIBERNATION
|
2007-10-25 06:50:43 +08:00
|
|
|
depends on X86_32
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
config DEBUG_PAGEALLOC
|
2006-03-25 19:07:22 +08:00
|
|
|
bool "Debug page memory allocations"
|
2007-07-30 05:24:36 +08:00
|
|
|
depends on DEBUG_KERNEL && !HIBERNATION && !HUGETLBFS
|
2007-10-25 06:50:43 +08:00
|
|
|
depends on X86_32
|
2005-04-17 06:20:36 +08:00
|
|
|
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.
|
|
|
|
|
2006-01-06 16:12:02 +08:00
|
|
|
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".
|
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
config 4KSTACKS
|
|
|
|
bool "Use 4Kb for kernel stacks instead of 8Kb"
|
|
|
|
depends on DEBUG_KERNEL
|
2007-10-25 06:50:43 +08:00
|
|
|
depends on X86_32
|
2005-04-17 06:20:36 +08:00
|
|
|
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
|
2007-10-25 06:50:43 +08:00
|
|
|
def_bool y
|
2005-04-17 06:20:36 +08:00
|
|
|
depends on X86_LOCAL_APIC || X86_VOYAGER
|
2007-10-25 06:50:43 +08:00
|
|
|
depends on X86_32
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
config X86_MPPARSE
|
2007-10-25 06:50:43 +08:00
|
|
|
def_bool y
|
2008-01-30 20:32:27 +08:00
|
|
|
depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
|
2005-04-17 06:20:36 +08:00
|
|
|
|
2006-04-18 18:35:22 +08:00
|
|
|
config DOUBLEFAULT
|
|
|
|
default y
|
|
|
|
bool "Enable doublefault exception handler" if EMBEDDED
|
2007-10-25 06:50:43 +08:00
|
|
|
depends on X86_32
|
|
|
|
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 IOMMU_DEBUG
|
|
|
|
bool "Enable IOMMU debugging"
|
2007-10-24 18:49:48 +08:00
|
|
|
depends on GART_IOMMU && DEBUG_KERNEL
|
2007-10-25 06:50:43 +08:00
|
|
|
depends on X86_64
|
2006-04-18 18:35:22 +08:00
|
|
|
help
|
2007-10-25 06:50:43 +08:00
|
|
|
Force the IOMMU to on even when you have less than 4GB of
|
|
|
|
memory and add debugging code. On overflow always panic. And
|
|
|
|
allow to enable IOMMU leak tracing. Can be disabled at boot
|
|
|
|
time with iommu=noforce. This will also enable scatter gather
|
|
|
|
list merging. Currently not recommended for production
|
|
|
|
code. When you use it make sure you have a big enough
|
|
|
|
IOMMU/AGP aperture. Most of the options enabled by this can
|
|
|
|
be set more finegrained using the iommu= command line
|
|
|
|
options. See Documentation/x86_64/boot-options.txt for more
|
|
|
|
details.
|
|
|
|
|
|
|
|
config IOMMU_LEAK
|
|
|
|
bool "IOMMU leak tracing"
|
|
|
|
depends on DEBUG_KERNEL
|
|
|
|
depends on IOMMU_DEBUG
|
|
|
|
help
|
|
|
|
Add a simple leak tracer to the IOMMU code. This is useful when you
|
|
|
|
are debugging a buggy device driver that leaks IOMMU mappings.
|
|
|
|
|
2008-01-30 20:30:05 +08:00
|
|
|
#
|
|
|
|
# IO delay types:
|
|
|
|
#
|
|
|
|
|
|
|
|
config IO_DELAY_TYPE_0X80
|
|
|
|
int
|
|
|
|
default "0"
|
|
|
|
|
|
|
|
config IO_DELAY_TYPE_0XED
|
|
|
|
int
|
|
|
|
default "1"
|
|
|
|
|
|
|
|
config IO_DELAY_TYPE_UDELAY
|
|
|
|
int
|
|
|
|
default "2"
|
|
|
|
|
|
|
|
config IO_DELAY_TYPE_NONE
|
|
|
|
int
|
|
|
|
default "3"
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "IO delay type"
|
2008-01-30 20:30:05 +08:00
|
|
|
default IO_DELAY_0XED
|
2008-01-30 20:30:05 +08:00
|
|
|
|
|
|
|
config IO_DELAY_0X80
|
|
|
|
bool "port 0x80 based port-IO delay [recommended]"
|
|
|
|
help
|
|
|
|
This is the traditional Linux IO delay used for in/out_p.
|
|
|
|
It is the most tested hence safest selection here.
|
|
|
|
|
|
|
|
config IO_DELAY_0XED
|
|
|
|
bool "port 0xed based port-IO delay"
|
|
|
|
help
|
|
|
|
Use port 0xed as the IO delay. This frees up port 0x80 which is
|
|
|
|
often used as a hardware-debug port.
|
|
|
|
|
|
|
|
config IO_DELAY_UDELAY
|
|
|
|
bool "udelay based port-IO delay"
|
|
|
|
help
|
|
|
|
Use udelay(2) as the IO delay method. This provides the delay
|
|
|
|
while not having any side-effect on the IO port space.
|
|
|
|
|
|
|
|
config IO_DELAY_NONE
|
|
|
|
bool "no port-IO delay"
|
2008-01-30 20:30:05 +08:00
|
|
|
help
|
2008-01-30 20:30:05 +08:00
|
|
|
No port-IO delay. Will break on old boxes that require port-IO
|
|
|
|
delay for certain operations. Should work on most new machines.
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
if IO_DELAY_0X80
|
|
|
|
config DEFAULT_IO_DELAY_TYPE
|
|
|
|
int
|
|
|
|
default IO_DELAY_TYPE_0X80
|
|
|
|
endif
|
|
|
|
|
|
|
|
if IO_DELAY_0XED
|
|
|
|
config DEFAULT_IO_DELAY_TYPE
|
|
|
|
int
|
|
|
|
default IO_DELAY_TYPE_0XED
|
|
|
|
endif
|
|
|
|
|
|
|
|
if IO_DELAY_UDELAY
|
|
|
|
config DEFAULT_IO_DELAY_TYPE
|
|
|
|
int
|
|
|
|
default IO_DELAY_TYPE_UDELAY
|
|
|
|
endif
|
|
|
|
|
|
|
|
if IO_DELAY_NONE
|
|
|
|
config DEFAULT_IO_DELAY_TYPE
|
|
|
|
int
|
|
|
|
default IO_DELAY_TYPE_NONE
|
|
|
|
endif
|
2008-01-30 20:30:05 +08:00
|
|
|
|
2005-04-17 06:20:36 +08:00
|
|
|
endmenu
|