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 DEBUG_RODATA 58 bool "Write protect kernel read-only data structures" 59 default y 60 depends on DEBUG_KERNEL 61 help 62 Mark the kernel read-only data as write-protected in the pagetables, 63 in order to catch accidental (and incorrect) writes to such const 64 data. This is recommended so that we can catch kernel bugs sooner. 65 If in doubt, say "Y". 66 67config DEBUG_RODATA_TEST 68 bool "Testcase for the DEBUG_RODATA feature" 69 depends on DEBUG_RODATA 70 help 71 This option enables a testcase for the DEBUG_RODATA 72 feature as well as for the change_page_attr() infrastructure. 73 If in doubt, say "N" 74 75config DEBUG_NX_TEST 76 tristate "Testcase for the NX non-executable stack feature" 77 depends on DEBUG_KERNEL && m 78 help 79 This option enables a testcase for the CPU NX capability 80 and the software setup of this feature. 81 If in doubt, say "N" 82 83config 4KSTACKS 84 bool "Use 4Kb for kernel stacks instead of 8Kb" 85 depends on DEBUG_KERNEL 86 depends on X86_32 87 help 88 If you say Y here the kernel will use a 4Kb stacksize for the 89 kernel stack attached to each process/thread. This facilitates 90 running more threads on a system and also reduces the pressure 91 on the VM subsystem for higher order allocations. This option 92 will also use IRQ stacks to compensate for the reduced stackspace. 93 94config X86_FIND_SMP_CONFIG 95 def_bool y 96 depends on X86_LOCAL_APIC || X86_VOYAGER 97 depends on X86_32 98 99config X86_MPPARSE 100 def_bool y 101 depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64 102 103config DOUBLEFAULT 104 default y 105 bool "Enable doublefault exception handler" if EMBEDDED 106 depends on X86_32 107 help 108 This option allows trapping of rare doublefault exceptions that 109 would otherwise cause a system to silently reboot. Disabling this 110 option saves about 4k and might cause you much additional grey 111 hair. 112 113config IOMMU_DEBUG 114 bool "Enable IOMMU debugging" 115 depends on GART_IOMMU && DEBUG_KERNEL 116 depends on X86_64 117 help 118 Force the IOMMU to on even when you have less than 4GB of 119 memory and add debugging code. On overflow always panic. And 120 allow to enable IOMMU leak tracing. Can be disabled at boot 121 time with iommu=noforce. This will also enable scatter gather 122 list merging. Currently not recommended for production 123 code. When you use it make sure you have a big enough 124 IOMMU/AGP aperture. Most of the options enabled by this can 125 be set more finegrained using the iommu= command line 126 options. See Documentation/x86_64/boot-options.txt for more 127 details. 128 129config IOMMU_LEAK 130 bool "IOMMU leak tracing" 131 depends on DEBUG_KERNEL 132 depends on IOMMU_DEBUG 133 help 134 Add a simple leak tracer to the IOMMU code. This is useful when you 135 are debugging a buggy device driver that leaks IOMMU mappings. 136 137# 138# IO delay types: 139# 140 141config IO_DELAY_TYPE_0X80 142 int 143 default "0" 144 145config IO_DELAY_TYPE_0XED 146 int 147 default "1" 148 149config IO_DELAY_TYPE_UDELAY 150 int 151 default "2" 152 153config IO_DELAY_TYPE_NONE 154 int 155 default "3" 156 157choice 158 prompt "IO delay type" 159 default IO_DELAY_0X80 160 161config IO_DELAY_0X80 162 bool "port 0x80 based port-IO delay [recommended]" 163 help 164 This is the traditional Linux IO delay used for in/out_p. 165 It is the most tested hence safest selection here. 166 167config IO_DELAY_0XED 168 bool "port 0xed based port-IO delay" 169 help 170 Use port 0xed as the IO delay. This frees up port 0x80 which is 171 often used as a hardware-debug port. 172 173config IO_DELAY_UDELAY 174 bool "udelay based port-IO delay" 175 help 176 Use udelay(2) as the IO delay method. This provides the delay 177 while not having any side-effect on the IO port space. 178 179config IO_DELAY_NONE 180 bool "no port-IO delay" 181 help 182 No port-IO delay. Will break on old boxes that require port-IO 183 delay for certain operations. Should work on most new machines. 184 185endchoice 186 187if IO_DELAY_0X80 188config DEFAULT_IO_DELAY_TYPE 189 int 190 default IO_DELAY_TYPE_0X80 191endif 192 193if IO_DELAY_0XED 194config DEFAULT_IO_DELAY_TYPE 195 int 196 default IO_DELAY_TYPE_0XED 197endif 198 199if IO_DELAY_UDELAY 200config DEFAULT_IO_DELAY_TYPE 201 int 202 default IO_DELAY_TYPE_UDELAY 203endif 204 205if IO_DELAY_NONE 206config DEFAULT_IO_DELAY_TYPE 207 int 208 default IO_DELAY_TYPE_NONE 209endif 210 211config DEBUG_BOOT_PARAMS 212 bool "Debug boot parameters" 213 depends on DEBUG_KERNEL 214 depends on DEBUG_FS 215 help 216 This option will cause struct boot_params to be exported via debugfs. 217 218config CPA_DEBUG 219 bool "CPA self-test code" 220 depends on DEBUG_KERNEL 221 help 222 Do change_page_attr() self-tests every 30 seconds. 223 224endmenu 225