blob: 2a859a7e2d74dba797f43a252359d906d3ffbe9d [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001menu "Kernel hacking"
2
Ingo Molnar55f327f2006-07-03 00:24:43 -07003config TRACE_IRQFLAGS_SUPPORT
Randy Dunlapd013a272007-10-24 15:50:43 -07004 def_bool y
Ingo Molnar55f327f2006-07-03 00:24:43 -07005
Linus Torvalds1da177e2005-04-16 15:20:36 -07006source "lib/Kconfig.debug"
7
8config EARLY_PRINTK
Ingo Molnar076f9772008-01-30 13:33:06 +01009 bool "Early printk" if EMBEDDED
Linus Torvalds1da177e2005-04-16 15:20:36 -070010 default y
11 help
12 Write kernel log output directly into the VGA buffer or to a serial
13 port.
14
15 This is useful for kernel debugging when your machine crashes very
16 early before the console code is initialized. For normal operation
17 it is not recommended because it looks ugly and doesn't cooperate
18 with klogd/syslogd or the X server. You should normally N here,
19 unless you want to debug such a crash.
20
21config DEBUG_STACKOVERFLOW
22 bool "Check for stack overflows"
23 depends on DEBUG_KERNEL
Adrian Bunkdab175f2005-07-27 11:44:23 -070024 help
25 This option will cause messages to be printed if free stack space
26 drops below a certain limit.
Linus Torvalds1da177e2005-04-16 15:20:36 -070027
Linus Torvalds1da177e2005-04-16 15:20:36 -070028config DEBUG_STACK_USAGE
29 bool "Stack utilization instrumentation"
30 depends on DEBUG_KERNEL
31 help
32 Enables the display of the minimum amount of free stack which each
33 task has ever had available in the sysrq-T and sysrq-P debug output.
34
35 This option will slow down process creation somewhat.
36
37comment "Page alloc debug is incompatible with Software Suspend on i386"
Rafael J. Wysockib0cb1a12007-07-29 23:24:36 +020038 depends on DEBUG_KERNEL && HIBERNATION
Randy Dunlapd013a272007-10-24 15:50:43 -070039 depends on X86_32
Linus Torvalds1da177e2005-04-16 15:20:36 -070040
41config DEBUG_PAGEALLOC
Andrew Morton4a2f0ac2006-03-25 03:07:22 -080042 bool "Debug page memory allocations"
Rafael J. Wysockib0cb1a12007-07-29 23:24:36 +020043 depends on DEBUG_KERNEL && !HIBERNATION && !HUGETLBFS
Linus Torvalds1da177e2005-04-16 15:20:36 -070044 help
45 Unmap pages from the kernel linear mapping after free_pages().
46 This results in a large slowdown, but helps to find certain types
47 of memory corruptions.
48
travis@sgi.comc49a4952008-01-30 13:33:22 +010049config DEBUG_PER_CPU_MAPS
50 bool "Debug access to per_cpu maps"
51 depends on DEBUG_KERNEL
52 depends on X86_64_SMP
53 default n
54 help
55 Say Y to verify that the per_cpu map being accessed has
56 been setup. Adds a fair amount of code to kernel memory
57 and decreases performance.
58
59 Say N if unsure.
60
Arjan van de Ven63aaf302006-01-06 00:12:02 -080061config DEBUG_RODATA
62 bool "Write protect kernel read-only data structures"
Ingo Molnar11201e62008-01-30 13:33:32 +010063 default y
Arjan van de Ven63aaf302006-01-06 00:12:02 -080064 depends on DEBUG_KERNEL
65 help
66 Mark the kernel read-only data as write-protected in the pagetables,
67 in order to catch accidental (and incorrect) writes to such const
Ingo Molnar11201e62008-01-30 13:33:32 +010068 data. This is recommended so that we can catch kernel bugs sooner.
69 If in doubt, say "Y".
Arjan van de Ven63aaf302006-01-06 00:12:02 -080070
Linus Torvalds1da177e2005-04-16 15:20:36 -070071config 4KSTACKS
72 bool "Use 4Kb for kernel stacks instead of 8Kb"
73 depends on DEBUG_KERNEL
Randy Dunlapd013a272007-10-24 15:50:43 -070074 depends on X86_32
Linus Torvalds1da177e2005-04-16 15:20:36 -070075 help
76 If you say Y here the kernel will use a 4Kb stacksize for the
77 kernel stack attached to each process/thread. This facilitates
78 running more threads on a system and also reduces the pressure
79 on the VM subsystem for higher order allocations. This option
80 will also use IRQ stacks to compensate for the reduced stackspace.
81
82config X86_FIND_SMP_CONFIG
Randy Dunlapd013a272007-10-24 15:50:43 -070083 def_bool y
Linus Torvalds1da177e2005-04-16 15:20:36 -070084 depends on X86_LOCAL_APIC || X86_VOYAGER
Randy Dunlapd013a272007-10-24 15:50:43 -070085 depends on X86_32
Linus Torvalds1da177e2005-04-16 15:20:36 -070086
87config X86_MPPARSE
Randy Dunlapd013a272007-10-24 15:50:43 -070088 def_bool y
Sam Ravnborg6b0c3d42008-01-30 13:32:27 +010089 depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
Linus Torvalds1da177e2005-04-16 15:20:36 -070090
Andi Kleen102e41f2006-04-18 12:35:22 +020091config DOUBLEFAULT
92 default y
93 bool "Enable doublefault exception handler" if EMBEDDED
Randy Dunlapd013a272007-10-24 15:50:43 -070094 depends on X86_32
Andi Kleen102e41f2006-04-18 12:35:22 +020095 help
Randy Dunlapd013a272007-10-24 15:50:43 -070096 This option allows trapping of rare doublefault exceptions that
97 would otherwise cause a system to silently reboot. Disabling this
98 option saves about 4k and might cause you much additional grey
99 hair.
100
101config IOMMU_DEBUG
102 bool "Enable IOMMU debugging"
Joerg Roedel966396d2007-10-24 12:49:48 +0200103 depends on GART_IOMMU && DEBUG_KERNEL
Randy Dunlapd013a272007-10-24 15:50:43 -0700104 depends on X86_64
105 help
106 Force the IOMMU to on even when you have less than 4GB of
107 memory and add debugging code. On overflow always panic. And
108 allow to enable IOMMU leak tracing. Can be disabled at boot
109 time with iommu=noforce. This will also enable scatter gather
110 list merging. Currently not recommended for production
111 code. When you use it make sure you have a big enough
112 IOMMU/AGP aperture. Most of the options enabled by this can
113 be set more finegrained using the iommu= command line
114 options. See Documentation/x86_64/boot-options.txt for more
115 details.
116
117config IOMMU_LEAK
118 bool "IOMMU leak tracing"
119 depends on DEBUG_KERNEL
120 depends on IOMMU_DEBUG
121 help
122 Add a simple leak tracer to the IOMMU code. This is useful when you
123 are debugging a buggy device driver that leaks IOMMU mappings.
124
Ingo Molnar6e7c4022008-01-30 13:30:05 +0100125#
126# IO delay types:
127#
128
129config IO_DELAY_TYPE_0X80
130 int
131 default "0"
132
133config IO_DELAY_TYPE_0XED
134 int
135 default "1"
136
137config IO_DELAY_TYPE_UDELAY
138 int
139 default "2"
140
141config IO_DELAY_TYPE_NONE
142 int
143 default "3"
144
145choice
146 prompt "IO delay type"
Ingo Molnard0049e72008-01-30 13:30:05 +0100147 default IO_DELAY_0XED
Ingo Molnar6e7c4022008-01-30 13:30:05 +0100148
149config IO_DELAY_0X80
150 bool "port 0x80 based port-IO delay [recommended]"
Rene Hermanb02aae92008-01-30 13:30:05 +0100151 help
Ingo Molnar6e7c4022008-01-30 13:30:05 +0100152 This is the traditional Linux IO delay used for in/out_p.
153 It is the most tested hence safest selection here.
154
155config IO_DELAY_0XED
156 bool "port 0xed based port-IO delay"
157 help
158 Use port 0xed as the IO delay. This frees up port 0x80 which is
159 often used as a hardware-debug port.
160
161config IO_DELAY_UDELAY
162 bool "udelay based port-IO delay"
163 help
164 Use udelay(2) as the IO delay method. This provides the delay
165 while not having any side-effect on the IO port space.
166
167config IO_DELAY_NONE
168 bool "no port-IO delay"
169 help
170 No port-IO delay. Will break on old boxes that require port-IO
171 delay for certain operations. Should work on most new machines.
172
173endchoice
174
175if IO_DELAY_0X80
176config DEFAULT_IO_DELAY_TYPE
177 int
178 default IO_DELAY_TYPE_0X80
179endif
180
181if IO_DELAY_0XED
182config DEFAULT_IO_DELAY_TYPE
183 int
184 default IO_DELAY_TYPE_0XED
185endif
186
187if IO_DELAY_UDELAY
188config DEFAULT_IO_DELAY_TYPE
189 int
190 default IO_DELAY_TYPE_UDELAY
191endif
192
193if IO_DELAY_NONE
194config DEFAULT_IO_DELAY_TYPE
195 int
196 default IO_DELAY_TYPE_NONE
197endif
Rene Hermanb02aae92008-01-30 13:30:05 +0100198
Huang, Ying6d7d7432008-01-30 13:32:51 +0100199config DEBUG_BOOT_PARAMS
200 bool "Debug boot parameters"
201 depends on DEBUG_KERNEL
202 depends on DEBUG_FS
203 help
204 This option will cause struct boot_params to be exported via debugfs.
205
Andi Kleen0c42f392008-01-30 13:33:42 +0100206config CPA_DEBUG
207 bool "CPA self test code"
Ingo Molnarf316fe62008-01-30 13:34:04 +0100208 depends on DEBUG_KERNEL
Andi Kleen0c42f392008-01-30 13:33:42 +0100209 help
210 Do change_page_attr self tests at boot.
211
Linus Torvalds1da177e2005-04-16 15:20:36 -0700212endmenu