| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | menu "Kernel hacking" | 
 | 2 |  | 
| Ingo Molnar | 55f327f | 2006-07-03 00:24:43 -0700 | [diff] [blame] | 3 | config TRACE_IRQFLAGS_SUPPORT | 
| Randy Dunlap | d013a27 | 2007-10-24 15:50:43 -0700 | [diff] [blame] | 4 | 	def_bool y | 
| Ingo Molnar | 55f327f | 2006-07-03 00:24:43 -0700 | [diff] [blame] | 5 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 6 | source "lib/Kconfig.debug" | 
 | 7 |  | 
| Ingo Molnar | d092633 | 2008-07-18 00:26:59 +0200 | [diff] [blame] | 8 | config STRICT_DEVMEM | 
 | 9 | 	bool "Filter access to /dev/mem" | 
| Arjan van de Ven | ae531c2 | 2008-04-24 23:40:47 +0200 | [diff] [blame] | 10 | 	help | 
| Linus Torvalds | f2d0f1d | 2008-07-21 13:04:08 -0700 | [diff] [blame] | 11 | 	  If this option is disabled, you allow userspace (root) access to all | 
| Stefan Richter | 16104b5 | 2008-06-05 22:47:13 +0200 | [diff] [blame] | 12 | 	  of memory, including kernel and userspace memory. Accidental | 
 | 13 | 	  access to this is obviously disastrous, but specific access can | 
| Ingo Molnar | d092633 | 2008-07-18 00:26:59 +0200 | [diff] [blame] | 14 | 	  be used by people debugging the kernel. Note that with PAT support | 
 | 15 | 	  enabled, even in this case there are restrictions on /dev/mem | 
 | 16 | 	  use due to the cache aliasing requirements. | 
| Stefan Richter | 16104b5 | 2008-06-05 22:47:13 +0200 | [diff] [blame] | 17 |  | 
 | 18 | 	  If this option is switched on, the /dev/mem file only allows | 
 | 19 | 	  userspace access to PCI space and the BIOS code and data regions. | 
 | 20 | 	  This is sufficient for dosemu and X and all common users of | 
 | 21 | 	  /dev/mem. | 
 | 22 |  | 
 | 23 | 	  If in doubt, say Y. | 
| Arjan van de Ven | ae531c2 | 2008-04-24 23:40:47 +0200 | [diff] [blame] | 24 |  | 
| Ben Collins | 6bcb13b | 2008-06-18 14:04:35 -0400 | [diff] [blame] | 25 | config X86_VERBOSE_BOOTUP | 
 | 26 | 	bool "Enable verbose x86 bootup info messages" | 
 | 27 | 	default y | 
 | 28 | 	help | 
 | 29 | 	  Enables the informational output from the decompression stage | 
 | 30 | 	  (e.g. bzImage) of the boot. If you disable this you will still | 
 | 31 | 	  see errors. Disable this if you want silent bootup. | 
 | 32 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 33 | config EARLY_PRINTK | 
| Ingo Molnar | 076f977 | 2008-01-30 13:33:06 +0100 | [diff] [blame] | 34 | 	bool "Early printk" if EMBEDDED | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 | 	default y | 
 | 36 | 	help | 
 | 37 | 	  Write kernel log output directly into the VGA buffer or to a serial | 
 | 38 | 	  port. | 
 | 39 |  | 
 | 40 | 	  This is useful for kernel debugging when your machine crashes very | 
 | 41 | 	  early before the console code is initialized. For normal operation | 
 | 42 | 	  it is not recommended because it looks ugly and doesn't cooperate | 
 | 43 | 	  with klogd/syslogd or the X server. You should normally N here, | 
 | 44 | 	  unless you want to debug such a crash. | 
 | 45 |  | 
| Yinghai Lu | 5c05917 | 2008-07-24 17:29:40 -0700 | [diff] [blame] | 46 | config EARLY_PRINTK_DBGP | 
 | 47 | 	bool "Early printk via EHCI debug port" | 
 | 48 | 	default n | 
| Ingo Molnar | 9749986 | 2008-07-26 17:28:11 +0200 | [diff] [blame] | 49 | 	depends on EARLY_PRINTK && PCI | 
| Yinghai Lu | 5c05917 | 2008-07-24 17:29:40 -0700 | [diff] [blame] | 50 | 	help | 
 | 51 | 	  Write kernel log output directly into the EHCI debug port. | 
 | 52 |  | 
 | 53 | 	  This is useful for kernel debugging when your machine crashes very | 
 | 54 | 	  early before the console code is initialized. For normal operation | 
 | 55 | 	  it is not recommended because it looks ugly and doesn't cooperate | 
 | 56 | 	  with klogd/syslogd or the X server. You should normally N here, | 
 | 57 | 	  unless you want to debug such a crash. You need usb debug device. | 
 | 58 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 59 | config DEBUG_STACKOVERFLOW | 
 | 60 | 	bool "Check for stack overflows" | 
 | 61 | 	depends on DEBUG_KERNEL | 
| Adrian Bunk | dab175f | 2005-07-27 11:44:23 -0700 | [diff] [blame] | 62 | 	help | 
 | 63 | 	  This option will cause messages to be printed if free stack space | 
 | 64 | 	  drops below a certain limit. | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 65 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 66 | config DEBUG_STACK_USAGE | 
 | 67 | 	bool "Stack utilization instrumentation" | 
 | 68 | 	depends on DEBUG_KERNEL | 
 | 69 | 	help | 
 | 70 | 	  Enables the display of the minimum amount of free stack which each | 
 | 71 | 	  task has ever had available in the sysrq-T and sysrq-P debug output. | 
 | 72 |  | 
 | 73 | 	  This option will slow down process creation somewhat. | 
 | 74 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 75 | config DEBUG_PAGEALLOC | 
| Andrew Morton | 4a2f0ac | 2006-03-25 03:07:22 -0800 | [diff] [blame] | 76 | 	bool "Debug page memory allocations" | 
| Thomas Gleixner | b1d95f4 | 2008-02-09 23:24:09 +0100 | [diff] [blame] | 77 | 	depends on DEBUG_KERNEL | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 78 | 	help | 
 | 79 | 	  Unmap pages from the kernel linear mapping after free_pages(). | 
 | 80 | 	  This results in a large slowdown, but helps to find certain types | 
 | 81 | 	  of memory corruptions. | 
 | 82 |  | 
| travis@sgi.com | c49a495 | 2008-01-30 13:33:22 +0100 | [diff] [blame] | 83 | config DEBUG_PER_CPU_MAPS | 
 | 84 | 	bool "Debug access to per_cpu maps" | 
 | 85 | 	depends on DEBUG_KERNEL | 
| Mike Travis | 23ca4bb | 2008-05-12 21:21:12 +0200 | [diff] [blame] | 86 | 	depends on X86_SMP | 
| travis@sgi.com | c49a495 | 2008-01-30 13:33:22 +0100 | [diff] [blame] | 87 | 	default n | 
 | 88 | 	help | 
 | 89 | 	  Say Y to verify that the per_cpu map being accessed has | 
 | 90 | 	  been setup.  Adds a fair amount of code to kernel memory | 
 | 91 | 	  and decreases performance. | 
 | 92 |  | 
 | 93 | 	  Say N if unsure. | 
 | 94 |  | 
| Arjan van de Ven | 926e539 | 2008-04-17 17:40:45 +0200 | [diff] [blame] | 95 | config X86_PTDUMP | 
 | 96 | 	bool "Export kernel pagetable layout to userspace via debugfs" | 
| H. Peter Anvin | fe770bf | 2008-04-17 17:40:45 +0200 | [diff] [blame] | 97 | 	depends on DEBUG_KERNEL | 
| Arjan van de Ven | 926e539 | 2008-04-17 17:40:45 +0200 | [diff] [blame] | 98 | 	select DEBUG_FS | 
 | 99 | 	help | 
 | 100 | 	  Say Y here if you want to show the kernel pagetable layout in a | 
 | 101 | 	  debugfs file. This information is only useful for kernel developers | 
 | 102 | 	  who are working in architecture specific areas of the kernel. | 
 | 103 | 	  It is probably not a good idea to enable this feature in a production | 
 | 104 | 	  kernel. | 
 | 105 | 	  If in doubt, say "N" | 
 | 106 |  | 
| Arjan van de Ven | 63aaf30 | 2006-01-06 00:12:02 -0800 | [diff] [blame] | 107 | config DEBUG_RODATA | 
 | 108 | 	bool "Write protect kernel read-only data structures" | 
| Ingo Molnar | 11201e6 | 2008-01-30 13:33:32 +0100 | [diff] [blame] | 109 | 	default y | 
| Arjan van de Ven | 63aaf30 | 2006-01-06 00:12:02 -0800 | [diff] [blame] | 110 | 	depends on DEBUG_KERNEL | 
 | 111 | 	help | 
 | 112 | 	  Mark the kernel read-only data as write-protected in the pagetables, | 
 | 113 | 	  in order to catch accidental (and incorrect) writes to such const | 
| Ingo Molnar | 11201e6 | 2008-01-30 13:33:32 +0100 | [diff] [blame] | 114 | 	  data. This is recommended so that we can catch kernel bugs sooner. | 
 | 115 | 	  If in doubt, say "Y". | 
| Arjan van de Ven | 63aaf30 | 2006-01-06 00:12:02 -0800 | [diff] [blame] | 116 |  | 
| Ingo Molnar | aba8391 | 2008-01-30 13:34:09 +0100 | [diff] [blame] | 117 | config DEBUG_RODATA_TEST | 
 | 118 | 	bool "Testcase for the DEBUG_RODATA feature" | 
 | 119 | 	depends on DEBUG_RODATA | 
 | 120 | 	help | 
 | 121 | 	  This option enables a testcase for the DEBUG_RODATA | 
 | 122 | 	  feature as well as for the change_page_attr() infrastructure. | 
 | 123 | 	  If in doubt, say "N" | 
 | 124 |  | 
 | 125 | config DEBUG_NX_TEST | 
 | 126 | 	tristate "Testcase for the NX non-executable stack feature" | 
 | 127 | 	depends on DEBUG_KERNEL && m | 
 | 128 | 	help | 
 | 129 | 	  This option enables a testcase for the CPU NX capability | 
 | 130 | 	  and the software setup of this feature. | 
 | 131 | 	  If in doubt, say "N" | 
 | 132 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 133 | config 4KSTACKS | 
 | 134 | 	bool "Use 4Kb for kernel stacks instead of 8Kb" | 
| Randy Dunlap | d013a27 | 2007-10-24 15:50:43 -0700 | [diff] [blame] | 135 | 	depends on X86_32 | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 136 | 	help | 
 | 137 | 	  If you say Y here the kernel will use a 4Kb stacksize for the | 
 | 138 | 	  kernel stack attached to each process/thread. This facilitates | 
 | 139 | 	  running more threads on a system and also reduces the pressure | 
 | 140 | 	  on the VM subsystem for higher order allocations. This option | 
 | 141 | 	  will also use IRQ stacks to compensate for the reduced stackspace. | 
 | 142 |  | 
| Andi Kleen | 102e41f | 2006-04-18 12:35:22 +0200 | [diff] [blame] | 143 | config DOUBLEFAULT | 
 | 144 | 	default y | 
 | 145 | 	bool "Enable doublefault exception handler" if EMBEDDED | 
| Randy Dunlap | d013a27 | 2007-10-24 15:50:43 -0700 | [diff] [blame] | 146 | 	depends on X86_32 | 
| Andi Kleen | 102e41f | 2006-04-18 12:35:22 +0200 | [diff] [blame] | 147 | 	help | 
| Randy Dunlap | d013a27 | 2007-10-24 15:50:43 -0700 | [diff] [blame] | 148 | 	  This option allows trapping of rare doublefault exceptions that | 
 | 149 | 	  would otherwise cause a system to silently reboot. Disabling this | 
 | 150 | 	  option saves about 4k and might cause you much additional grey | 
 | 151 | 	  hair. | 
 | 152 |  | 
 | 153 | config IOMMU_DEBUG | 
 | 154 | 	bool "Enable IOMMU debugging" | 
| Joerg Roedel | 966396d | 2007-10-24 12:49:48 +0200 | [diff] [blame] | 155 | 	depends on GART_IOMMU && DEBUG_KERNEL | 
| Randy Dunlap | d013a27 | 2007-10-24 15:50:43 -0700 | [diff] [blame] | 156 | 	depends on X86_64 | 
 | 157 | 	help | 
 | 158 | 	  Force the IOMMU to on even when you have less than 4GB of | 
 | 159 | 	  memory and add debugging code. On overflow always panic. And | 
 | 160 | 	  allow to enable IOMMU leak tracing. Can be disabled at boot | 
 | 161 | 	  time with iommu=noforce. This will also enable scatter gather | 
 | 162 | 	  list merging.  Currently not recommended for production | 
 | 163 | 	  code. When you use it make sure you have a big enough | 
 | 164 | 	  IOMMU/AGP aperture.  Most of the options enabled by this can | 
 | 165 | 	  be set more finegrained using the iommu= command line | 
 | 166 | 	  options. See Documentation/x86_64/boot-options.txt for more | 
 | 167 | 	  details. | 
 | 168 |  | 
 | 169 | config IOMMU_LEAK | 
 | 170 | 	bool "IOMMU leak tracing" | 
 | 171 | 	depends on DEBUG_KERNEL | 
 | 172 | 	depends on IOMMU_DEBUG | 
 | 173 | 	help | 
 | 174 | 	  Add a simple leak tracer to the IOMMU code. This is useful when you | 
 | 175 | 	  are debugging a buggy device driver that leaks IOMMU mappings. | 
 | 176 |  | 
| Pekka Paalanen | 8b7d89d | 2008-05-12 21:20:56 +0200 | [diff] [blame] | 177 | config MMIOTRACE | 
| Pekka Paalanen | d61fc44 | 2008-05-12 21:20:57 +0200 | [diff] [blame] | 178 | 	bool "Memory mapped IO tracing" | 
| Randy Dunlap | 37b3619 | 2008-05-12 21:20:59 +0200 | [diff] [blame] | 179 | 	depends on DEBUG_KERNEL && PCI | 
| Pekka Paalanen | f984b51 | 2008-05-12 21:20:57 +0200 | [diff] [blame] | 180 | 	select TRACING | 
| Pekka Paalanen | 8b7d89d | 2008-05-12 21:20:56 +0200 | [diff] [blame] | 181 | 	help | 
| Pekka Paalanen | d61fc44 | 2008-05-12 21:20:57 +0200 | [diff] [blame] | 182 | 	  Mmiotrace traces Memory Mapped I/O access and is meant for | 
 | 183 | 	  debugging and reverse engineering. It is called from the ioremap | 
| Pekka Paalanen | c6c67c1 | 2008-05-12 21:20:59 +0200 | [diff] [blame] | 184 | 	  implementation and works via page faults. Tracing is disabled by | 
| Randy Dunlap | 37b3619 | 2008-05-12 21:20:59 +0200 | [diff] [blame] | 185 | 	  default and can be enabled at run-time. | 
| Pekka Paalanen | 8b7d89d | 2008-05-12 21:20:56 +0200 | [diff] [blame] | 186 |  | 
| Pekka Paalanen | c6c67c1 | 2008-05-12 21:20:59 +0200 | [diff] [blame] | 187 | 	  See Documentation/tracers/mmiotrace.txt. | 
| Pekka Paalanen | 8b7d89d | 2008-05-12 21:20:56 +0200 | [diff] [blame] | 188 | 	  If you are not helping to develop drivers, say N. | 
 | 189 |  | 
 | 190 | config MMIOTRACE_TEST | 
 | 191 | 	tristate "Test module for mmiotrace" | 
 | 192 | 	depends on MMIOTRACE && m | 
| Pekka Paalanen | 8b7d89d | 2008-05-12 21:20:56 +0200 | [diff] [blame] | 193 | 	help | 
 | 194 | 	  This is a dumb module for testing mmiotrace. It is very dangerous | 
 | 195 | 	  as it will write garbage to IO memory starting at a given address. | 
 | 196 | 	  However, it should be safe to use on e.g. unused portion of VRAM. | 
 | 197 |  | 
 | 198 | 	  Say N, unless you absolutely know what you are doing. | 
 | 199 |  | 
| Ingo Molnar | 6e7c402 | 2008-01-30 13:30:05 +0100 | [diff] [blame] | 200 | # | 
 | 201 | # IO delay types: | 
 | 202 | # | 
 | 203 |  | 
 | 204 | config IO_DELAY_TYPE_0X80 | 
 | 205 | 	int | 
 | 206 | 	default "0" | 
 | 207 |  | 
 | 208 | config IO_DELAY_TYPE_0XED | 
 | 209 | 	int | 
 | 210 | 	default "1" | 
 | 211 |  | 
 | 212 | config IO_DELAY_TYPE_UDELAY | 
 | 213 | 	int | 
 | 214 | 	default "2" | 
 | 215 |  | 
 | 216 | config IO_DELAY_TYPE_NONE | 
 | 217 | 	int | 
 | 218 | 	default "3" | 
 | 219 |  | 
 | 220 | choice | 
 | 221 | 	prompt "IO delay type" | 
| Ingo Molnar | fd59e9e | 2008-02-17 20:20:24 +0100 | [diff] [blame] | 222 | 	default IO_DELAY_0X80 | 
| Ingo Molnar | 6e7c402 | 2008-01-30 13:30:05 +0100 | [diff] [blame] | 223 |  | 
 | 224 | config IO_DELAY_0X80 | 
 | 225 | 	bool "port 0x80 based port-IO delay [recommended]" | 
| Rene Herman | b02aae9 | 2008-01-30 13:30:05 +0100 | [diff] [blame] | 226 | 	help | 
| Ingo Molnar | 6e7c402 | 2008-01-30 13:30:05 +0100 | [diff] [blame] | 227 | 	  This is the traditional Linux IO delay used for in/out_p. | 
 | 228 | 	  It is the most tested hence safest selection here. | 
 | 229 |  | 
 | 230 | config IO_DELAY_0XED | 
 | 231 | 	bool "port 0xed based port-IO delay" | 
 | 232 | 	help | 
 | 233 | 	  Use port 0xed as the IO delay. This frees up port 0x80 which is | 
 | 234 | 	  often used as a hardware-debug port. | 
 | 235 |  | 
 | 236 | config IO_DELAY_UDELAY | 
 | 237 | 	bool "udelay based port-IO delay" | 
 | 238 | 	help | 
 | 239 | 	  Use udelay(2) as the IO delay method. This provides the delay | 
 | 240 | 	  while not having any side-effect on the IO port space. | 
 | 241 |  | 
 | 242 | config IO_DELAY_NONE | 
 | 243 | 	bool "no port-IO delay" | 
 | 244 | 	help | 
 | 245 | 	  No port-IO delay. Will break on old boxes that require port-IO | 
 | 246 | 	  delay for certain operations. Should work on most new machines. | 
 | 247 |  | 
 | 248 | endchoice | 
 | 249 |  | 
 | 250 | if IO_DELAY_0X80 | 
 | 251 | config DEFAULT_IO_DELAY_TYPE | 
 | 252 | 	int | 
 | 253 | 	default IO_DELAY_TYPE_0X80 | 
 | 254 | endif | 
 | 255 |  | 
 | 256 | if IO_DELAY_0XED | 
 | 257 | config DEFAULT_IO_DELAY_TYPE | 
 | 258 | 	int | 
 | 259 | 	default IO_DELAY_TYPE_0XED | 
 | 260 | endif | 
 | 261 |  | 
 | 262 | if IO_DELAY_UDELAY | 
 | 263 | config DEFAULT_IO_DELAY_TYPE | 
 | 264 | 	int | 
 | 265 | 	default IO_DELAY_TYPE_UDELAY | 
 | 266 | endif | 
 | 267 |  | 
 | 268 | if IO_DELAY_NONE | 
 | 269 | config DEFAULT_IO_DELAY_TYPE | 
 | 270 | 	int | 
 | 271 | 	default IO_DELAY_TYPE_NONE | 
 | 272 | endif | 
| Rene Herman | b02aae9 | 2008-01-30 13:30:05 +0100 | [diff] [blame] | 273 |  | 
| Huang, Ying | 6d7d743 | 2008-01-30 13:32:51 +0100 | [diff] [blame] | 274 | config DEBUG_BOOT_PARAMS | 
 | 275 | 	bool "Debug boot parameters" | 
 | 276 | 	depends on DEBUG_KERNEL | 
 | 277 | 	depends on DEBUG_FS | 
 | 278 | 	help | 
 | 279 | 	  This option will cause struct boot_params to be exported via debugfs. | 
 | 280 |  | 
| Andi Kleen | 0c42f39 | 2008-01-30 13:33:42 +0100 | [diff] [blame] | 281 | config CPA_DEBUG | 
| Ingo Molnar | 971a52d | 2008-02-06 22:39:45 +0100 | [diff] [blame] | 282 | 	bool "CPA self-test code" | 
| Ingo Molnar | f316fe6 | 2008-01-30 13:34:04 +0100 | [diff] [blame] | 283 | 	depends on DEBUG_KERNEL | 
| Andi Kleen | 0c42f39 | 2008-01-30 13:33:42 +0100 | [diff] [blame] | 284 | 	help | 
| Ingo Molnar | 971a52d | 2008-02-06 22:39:45 +0100 | [diff] [blame] | 285 | 	  Do change_page_attr() self-tests every 30 seconds. | 
| Andi Kleen | 0c42f39 | 2008-01-30 13:33:42 +0100 | [diff] [blame] | 286 |  | 
| Ingo Molnar | 60a3cdd | 2008-03-03 12:38:52 +0100 | [diff] [blame] | 287 | config OPTIMIZE_INLINING | 
 | 288 | 	bool "Allow gcc to uninline functions marked 'inline'" | 
| Ingo Molnar | 60a3cdd | 2008-03-03 12:38:52 +0100 | [diff] [blame] | 289 | 	help | 
 | 290 | 	  This option determines if the kernel forces gcc to inline the functions | 
 | 291 | 	  developers have marked 'inline'. Doing so takes away freedom from gcc to | 
 | 292 | 	  do what it thinks is best, which is desirable for the gcc 3.x series of | 
 | 293 | 	  compilers. The gcc 4.x series have a rewritten inlining algorithm and | 
| Sitsofe Wheeler | 63fb708 | 2008-10-11 20:27:53 +0100 | [diff] [blame] | 294 | 	  enabling this option will generate a smaller kernel there. Hopefully | 
 | 295 | 	  this algorithm is so good that allowing gcc 4.x and above to make the | 
 | 296 | 	  decision will become the default in the future. Until then this option | 
 | 297 | 	  is there to test gcc for this. | 
| Ingo Molnar | c9af1e3 | 2008-04-30 08:48:45 +0200 | [diff] [blame] | 298 |  | 
| Ingo Molnar | 3f9b5cc | 2008-07-18 16:30:05 +0200 | [diff] [blame] | 299 | 	  If unsure, say N. | 
 | 300 |  | 
| Ingo Molnar | c9af1e3 | 2008-04-30 08:48:45 +0200 | [diff] [blame] | 301 | endmenu | 
 | 302 |  |