1menu "Kernel hacking" 2 3config TRACE_IRQFLAGS_SUPPORT 4 def_bool y 5 6source "lib/Kconfig.debug" 7 8config EARLY_PRINTK 9 bool "Early printk" if EMBEDDED 10 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 24 help 25 This option will cause messages to be printed if free stack space 26 drops below a certain limit. 27 28config 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 37config DEBUG_PAGEALLOC 38 bool "Debug page memory allocations" 39 depends on DEBUG_KERNEL 40 help 41 Unmap pages from the kernel linear mapping after free_pages(). 42 This results in a large slowdown, but helps to find certain types 43 of memory corruptions. 44 45config DEBUG_PER_CPU_MAPS 46 bool "Debug access to per_cpu maps" 47 depends on DEBUG_KERNEL 48 depends on X86_64_SMP 49 default n 50 help 51 Say Y to verify that the per_cpu map being accessed has 52 been setup. Adds a fair amount of code to kernel memory 53 and decreases performance. 54 55 Say N if unsure. 56 57config X86_PTDUMP 58 bool "Export kernel pagetable layout to userspace via debugfs" 59 depends on DEBUG_KERNEL 60 select DEBUG_FS 61 help 62 Say Y here if you want to show the kernel pagetable layout in a 63 debugfs file. This information is only useful for kernel developers 64 who are working in architecture specific areas of the kernel. 65 It is probably not a good idea to enable this feature in a production 66 kernel. 67 If in doubt, say "N" 68 69config DEBUG_RODATA 70 bool "Write protect kernel read-only data structures" 71 default y 72 depends on DEBUG_KERNEL 73 help 74 Mark the kernel read-only data as write-protected in the pagetables, 75 in order to catch accidental (and incorrect) writes to such const 76 data. This is recommended so that we can catch kernel bugs sooner. 77 If in doubt, say "Y". 78 79config DIRECT_GBPAGES 80 bool "Enable gbpages-mapped kernel pagetables" 81 depends on DEBUG_KERNEL && EXPERIMENTAL && X86_64 82 help 83 Enable gigabyte pages support (if the CPU supports it). This can 84 improve the kernel's performance a tiny bit by reducing TLB 85 pressure. 86 87 This is experimental code. 88 89 If in doubt, say "N". 90 91config DEBUG_RODATA_TEST 92 bool "Testcase for the DEBUG_RODATA feature" 93 depends on DEBUG_RODATA 94 help 95 This option enables a testcase for the DEBUG_RODATA 96 feature as well as for the change_page_attr() infrastructure. 97 If in doubt, say "N" 98 99config DEBUG_NX_TEST 100 tristate "Testcase for the NX non-executable stack feature" 101 depends on DEBUG_KERNEL && m 102 help 103 This option enables a testcase for the CPU NX capability 104 and the software setup of this feature. 105 If in doubt, say "N" 106 107config 4KSTACKS 108 bool "Use 4Kb for kernel stacks instead of 8Kb" 109 depends on X86_32 110 default y 111 help 112 If you say Y here the kernel will use a 4Kb stacksize for the 113 kernel stack attached to each process/thread. This facilitates 114 running more threads on a system and also reduces the pressure 115 on the VM subsystem for higher order allocations. This option 116 will also use IRQ stacks to compensate for the reduced stackspace. 117 118config X86_FIND_SMP_CONFIG 119 def_bool y 120 depends on X86_LOCAL_APIC || X86_VOYAGER 121 depends on X86_32 122 123config X86_MPPARSE 124 def_bool y 125 depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64 126 127config DOUBLEFAULT 128 default y 129 bool "Enable doublefault exception handler" if EMBEDDED 130 depends on X86_32 131 help 132 This option allows trapping of rare doublefault exceptions that 133 would otherwise cause a system to silently reboot. Disabling this 134 option saves about 4k and might cause you much additional grey 135 hair. 136 137config IOMMU_DEBUG 138 bool "Enable IOMMU debugging" 139 depends on GART_IOMMU && DEBUG_KERNEL 140 depends on X86_64 141 help 142 Force the IOMMU to on even when you have less than 4GB of 143 memory and add debugging code. On overflow always panic. And 144 allow to enable IOMMU leak tracing. Can be disabled at boot 145 time with iommu=noforce. This will also enable scatter gather 146 list merging. Currently not recommended for production 147 code. When you use it make sure you have a big enough 148 IOMMU/AGP aperture. Most of the options enabled by this can 149 be set more finegrained using the iommu= command line 150 options. See Documentation/x86_64/boot-options.txt for more 151 details. 152 153config IOMMU_LEAK 154 bool "IOMMU leak tracing" 155 depends on DEBUG_KERNEL 156 depends on IOMMU_DEBUG 157 help 158 Add a simple leak tracer to the IOMMU code. This is useful when you 159 are debugging a buggy device driver that leaks IOMMU mappings. 160 161# 162# IO delay types: 163# 164 165config IO_DELAY_TYPE_0X80 166 int 167 default "0" 168 169config IO_DELAY_TYPE_0XED 170 int 171 default "1" 172 173config IO_DELAY_TYPE_UDELAY 174 int 175 default "2" 176 177config IO_DELAY_TYPE_NONE 178 int 179 default "3" 180 181choice 182 prompt "IO delay type" 183 default IO_DELAY_0X80 184 185config IO_DELAY_0X80 186 bool "port 0x80 based port-IO delay [recommended]" 187 help 188 This is the traditional Linux IO delay used for in/out_p. 189 It is the most tested hence safest selection here. 190 191config IO_DELAY_0XED 192 bool "port 0xed based port-IO delay" 193 help 194 Use port 0xed as the IO delay. This frees up port 0x80 which is 195 often used as a hardware-debug port. 196 197config IO_DELAY_UDELAY 198 bool "udelay based port-IO delay" 199 help 200 Use udelay(2) as the IO delay method. This provides the delay 201 while not having any side-effect on the IO port space. 202 203config IO_DELAY_NONE 204 bool "no port-IO delay" 205 help 206 No port-IO delay. Will break on old boxes that require port-IO 207 delay for certain operations. Should work on most new machines. 208 209endchoice 210 211if IO_DELAY_0X80 212config DEFAULT_IO_DELAY_TYPE 213 int 214 default IO_DELAY_TYPE_0X80 215endif 216 217if IO_DELAY_0XED 218config DEFAULT_IO_DELAY_TYPE 219 int 220 default IO_DELAY_TYPE_0XED 221endif 222 223if IO_DELAY_UDELAY 224config DEFAULT_IO_DELAY_TYPE 225 int 226 default IO_DELAY_TYPE_UDELAY 227endif 228 229if IO_DELAY_NONE 230config DEFAULT_IO_DELAY_TYPE 231 int 232 default IO_DELAY_TYPE_NONE 233endif 234 235config DEBUG_BOOT_PARAMS 236 bool "Debug boot parameters" 237 depends on DEBUG_KERNEL 238 depends on DEBUG_FS 239 help 240 This option will cause struct boot_params to be exported via debugfs. 241 242config CPA_DEBUG 243 bool "CPA self-test code" 244 depends on DEBUG_KERNEL 245 help 246 Do change_page_attr() self-tests every 30 seconds. 247 248endmenu 249