1menu "Kernel hacking" 2 3config TRACE_IRQFLAGS_SUPPORT 4 def_bool y 5 6source "lib/Kconfig.debug" 7 8config STRICT_DEVMEM 9 bool "Filter access to /dev/mem" 10 ---help--- 11 If this option is disabled, you allow userspace (root) access to all 12 of memory, including kernel and userspace memory. Accidental 13 access to this is obviously disastrous, but specific access can 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. 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. 24 25config 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 33config EARLY_PRINTK 34 bool "Early printk" if EMBEDDED 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 46config EARLY_PRINTK_DBGP 47 bool "Early printk via EHCI debug port" 48 default n 49 depends on EARLY_PRINTK && PCI 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 59config DEBUG_STACKOVERFLOW 60 bool "Check for stack overflows" 61 depends on DEBUG_KERNEL 62 ---help--- 63 This option will cause messages to be printed if free stack space 64 drops below a certain limit. 65 66config 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 75config DEBUG_PAGEALLOC 76 bool "Debug page memory allocations" 77 depends on DEBUG_KERNEL 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 83config DEBUG_PER_CPU_MAPS 84 bool "Debug access to per_cpu maps" 85 depends on DEBUG_KERNEL 86 depends on SMP 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 95config X86_PTDUMP 96 bool "Export kernel pagetable layout to userspace via debugfs" 97 depends on DEBUG_KERNEL 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 107config DEBUG_RODATA 108 bool "Write protect kernel read-only data structures" 109 default y 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 114 data. This is recommended so that we can catch kernel bugs sooner. 115 If in doubt, say "Y". 116 117config DEBUG_RODATA_TEST 118 bool "Testcase for the DEBUG_RODATA feature" 119 depends on DEBUG_RODATA 120 default y 121 ---help--- 122 This option enables a testcase for the DEBUG_RODATA 123 feature as well as for the change_page_attr() infrastructure. 124 If in doubt, say "N" 125 126config DEBUG_NX_TEST 127 tristate "Testcase for the NX non-executable stack feature" 128 depends on DEBUG_KERNEL && m 129 ---help--- 130 This option enables a testcase for the CPU NX capability 131 and the software setup of this feature. 132 If in doubt, say "N" 133 134config 4KSTACKS 135 bool "Use 4Kb for kernel stacks instead of 8Kb" 136 depends on X86_32 137 ---help--- 138 If you say Y here the kernel will use a 4Kb stacksize for the 139 kernel stack attached to each process/thread. This facilitates 140 running more threads on a system and also reduces the pressure 141 on the VM subsystem for higher order allocations. This option 142 will also use IRQ stacks to compensate for the reduced stackspace. 143 144config DOUBLEFAULT 145 default y 146 bool "Enable doublefault exception handler" if EMBEDDED 147 depends on X86_32 148 ---help--- 149 This option allows trapping of rare doublefault exceptions that 150 would otherwise cause a system to silently reboot. Disabling this 151 option saves about 4k and might cause you much additional grey 152 hair. 153 154config IOMMU_DEBUG 155 bool "Enable IOMMU debugging" 156 depends on GART_IOMMU && DEBUG_KERNEL 157 depends on X86_64 158 ---help--- 159 Force the IOMMU to on even when you have less than 4GB of 160 memory and add debugging code. On overflow always panic. And 161 allow to enable IOMMU leak tracing. Can be disabled at boot 162 time with iommu=noforce. This will also enable scatter gather 163 list merging. Currently not recommended for production 164 code. When you use it make sure you have a big enough 165 IOMMU/AGP aperture. Most of the options enabled by this can 166 be set more finegrained using the iommu= command line 167 options. See Documentation/x86_64/boot-options.txt for more 168 details. 169 170config IOMMU_LEAK 171 bool "IOMMU leak tracing" 172 depends on DEBUG_KERNEL 173 depends on IOMMU_DEBUG 174 ---help--- 175 Add a simple leak tracer to the IOMMU code. This is useful when you 176 are debugging a buggy device driver that leaks IOMMU mappings. 177 178config HAVE_MMIOTRACE_SUPPORT 179 def_bool y 180 181# 182# IO delay types: 183# 184 185config IO_DELAY_TYPE_0X80 186 int 187 default "0" 188 189config IO_DELAY_TYPE_0XED 190 int 191 default "1" 192 193config IO_DELAY_TYPE_UDELAY 194 int 195 default "2" 196 197config IO_DELAY_TYPE_NONE 198 int 199 default "3" 200 201choice 202 prompt "IO delay type" 203 default IO_DELAY_0X80 204 205config IO_DELAY_0X80 206 bool "port 0x80 based port-IO delay [recommended]" 207 ---help--- 208 This is the traditional Linux IO delay used for in/out_p. 209 It is the most tested hence safest selection here. 210 211config IO_DELAY_0XED 212 bool "port 0xed based port-IO delay" 213 ---help--- 214 Use port 0xed as the IO delay. This frees up port 0x80 which is 215 often used as a hardware-debug port. 216 217config IO_DELAY_UDELAY 218 bool "udelay based port-IO delay" 219 ---help--- 220 Use udelay(2) as the IO delay method. This provides the delay 221 while not having any side-effect on the IO port space. 222 223config IO_DELAY_NONE 224 bool "no port-IO delay" 225 ---help--- 226 No port-IO delay. Will break on old boxes that require port-IO 227 delay for certain operations. Should work on most new machines. 228 229endchoice 230 231if IO_DELAY_0X80 232config DEFAULT_IO_DELAY_TYPE 233 int 234 default IO_DELAY_TYPE_0X80 235endif 236 237if IO_DELAY_0XED 238config DEFAULT_IO_DELAY_TYPE 239 int 240 default IO_DELAY_TYPE_0XED 241endif 242 243if IO_DELAY_UDELAY 244config DEFAULT_IO_DELAY_TYPE 245 int 246 default IO_DELAY_TYPE_UDELAY 247endif 248 249if IO_DELAY_NONE 250config DEFAULT_IO_DELAY_TYPE 251 int 252 default IO_DELAY_TYPE_NONE 253endif 254 255config DEBUG_BOOT_PARAMS 256 bool "Debug boot parameters" 257 depends on DEBUG_KERNEL 258 depends on DEBUG_FS 259 ---help--- 260 This option will cause struct boot_params to be exported via debugfs. 261 262config CPA_DEBUG 263 bool "CPA self-test code" 264 depends on DEBUG_KERNEL 265 ---help--- 266 Do change_page_attr() self-tests every 30 seconds. 267 268config OPTIMIZE_INLINING 269 bool "Allow gcc to uninline functions marked 'inline'" 270 ---help--- 271 This option determines if the kernel forces gcc to inline the functions 272 developers have marked 'inline'. Doing so takes away freedom from gcc to 273 do what it thinks is best, which is desirable for the gcc 3.x series of 274 compilers. The gcc 4.x series have a rewritten inlining algorithm and 275 enabling this option will generate a smaller kernel there. Hopefully 276 this algorithm is so good that allowing gcc 4.x and above to make the 277 decision will become the default in the future. Until then this option 278 is there to test gcc for this. 279 280 If unsure, say N. 281 282endmenu 283