Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v2.6.32 261 lines 9.0 kB view raw
1menu "Kernel hacking" 2 3source "lib/Kconfig.debug" 4 5config DEBUG_STACKOVERFLOW 6 bool "Check for stack overflows" 7 depends on DEBUG_KERNEL 8 help 9 This option will cause messages to be printed if free stack space 10 drops below a certain limit. 11 12config DEBUG_STACK_USAGE 13 bool "Enable stack utilization instrumentation" 14 depends on DEBUG_KERNEL 15 help 16 Enables the display of the minimum amount of free stack which each 17 task has ever had available in the sysrq-T output. 18 19 This option will slow down process creation somewhat. 20 21config HAVE_ARCH_KGDB 22 def_bool y 23 24config DEBUG_VERBOSE 25 bool "Verbose fault messages" 26 default y 27 select PRINTK 28 help 29 When a program crashes due to an exception, or the kernel detects 30 an internal error, the kernel can print a not so brief message 31 explaining what the problem was. This debugging information is 32 useful to developers and kernel hackers when tracking down problems, 33 but mostly meaningless to other people. This is always helpful for 34 debugging but serves no purpose on a production system. 35 Most people should say N here. 36 37config DEBUG_MMRS 38 bool "Generate Blackfin MMR tree" 39 select DEBUG_FS 40 help 41 Create a tree of Blackfin MMRs via the debugfs tree. If 42 you enable this, you will find all MMRs laid out in the 43 /sys/kernel/debug/blackfin/ directory where you can read/write 44 MMRs directly from userspace. This is obviously just a debug 45 feature. 46 47config DEBUG_HWERR 48 bool "Hardware error interrupt debugging" 49 depends on DEBUG_KERNEL 50 help 51 When enabled, the hardware error interrupt is never disabled, and 52 will happen immediately when an error condition occurs. This comes 53 at a slight cost in code size, but is necessary if you are getting 54 hardware error interrupts and need to know where they are coming 55 from. 56 57config EXACT_HWERR 58 bool "Try to make Hardware errors exact" 59 depends on DEBUG_HWERR 60 help 61 By default, the Blackfin hardware errors are not exact - the error 62 be reported multiple cycles after the error happens. This delay 63 can cause the wrong application, or even the kernel to receive a 64 signal to be killed. If you are getting HW errors in your system, 65 try turning this on to ensure they are at least comming from the 66 proper thread. 67 68 On production systems, it is safe (and a small optimization) to say N. 69 70config DEBUG_DOUBLEFAULT 71 bool "Debug Double Faults" 72 default n 73 help 74 If an exception is caused while executing code within the exception 75 handler, the NMI handler, the reset vector, or in emulator mode, 76 a double fault occurs. On the Blackfin, this is a unrecoverable 77 event. You have two options: 78 - RESET exactly when double fault occurs. The excepting 79 instruction address is stored in RETX, where the next kernel 80 boot will print it out. 81 - Print debug message. This is much more error prone, although 82 easier to handle. It is error prone since: 83 - The excepting instruction is not committed. 84 - All writebacks from the instruction are prevented. 85 - The generated exception is not taken. 86 - The EXCAUSE field is updated with an unrecoverable event 87 The only way to check this is to see if EXCAUSE contains the 88 unrecoverable event value at every exception return. By selecting 89 this option, you are skipping over the faulting instruction, and 90 hoping things stay together enough to print out a debug message. 91 92 This does add a little kernel code, but is the only method to debug 93 double faults - if unsure say "Y" 94 95choice 96 prompt "Double Fault Failure Method" 97 default DEBUG_DOUBLEFAULT_PRINT 98 depends on DEBUG_DOUBLEFAULT 99 100config DEBUG_DOUBLEFAULT_PRINT 101 bool "Print" 102 103config DEBUG_DOUBLEFAULT_RESET 104 bool "Reset" 105 106endchoice 107 108config DEBUG_ICACHE_CHECK 109 bool "Check Instruction cache coherency" 110 depends on DEBUG_KERNEL 111 depends on DEBUG_HWERR 112 help 113 Say Y here if you are getting weird unexplained errors. This will 114 ensure that icache is what SDRAM says it should be by doing a 115 byte wise comparison between SDRAM and instruction cache. This 116 also relocates the irq_panic() function to L1 memory, (which is 117 un-cached). 118 119config DEBUG_HUNT_FOR_ZERO 120 bool "Catch NULL pointer reads/writes" 121 default y 122 help 123 Say Y here to catch reads/writes to anywhere in the memory range 124 from 0x0000 - 0x0FFF (the first 4k) of memory. This is useful in 125 catching common programming errors such as NULL pointer dereferences. 126 127 Misbehaving applications will be killed (generate a SEGV) while the 128 kernel will trigger a panic. 129 130 Enabling this option will take up an extra entry in CPLB table. 131 Otherwise, there is no extra overhead. 132 133config DEBUG_BFIN_HWTRACE_ON 134 bool "Turn on Blackfin's Hardware Trace" 135 default y 136 help 137 All Blackfins include a Trace Unit which stores a history of the last 138 16 changes in program flow taken by the program sequencer. The history 139 allows the user to recreate the program sequencers recent path. This 140 can be handy when an application dies - we print out the execution 141 path of how it got to the offending instruction. 142 143 By turning this off, you may save a tiny amount of power. 144 145choice 146 prompt "Omit loop Tracing" 147 default DEBUG_BFIN_HWTRACE_COMPRESSION_OFF 148 depends on DEBUG_BFIN_HWTRACE_ON 149 help 150 The trace buffer can be configured to omit recording of changes in 151 program flow that match either the last entry or one of the last 152 two entries. Omitting one of these entries from the record prevents 153 the trace buffer from overflowing because of any sort of loop (for, do 154 while, etc) in the program. 155 156 Because zero-overhead Hardware loops are not recorded in the trace buffer, 157 this feature can be used to prevent trace overflow from loops that 158 are nested four deep. 159 160config DEBUG_BFIN_HWTRACE_COMPRESSION_OFF 161 bool "Trace all Loops" 162 help 163 The trace buffer records all changes of flow 164 165config DEBUG_BFIN_HWTRACE_COMPRESSION_ONE 166 bool "Compress single-level loops" 167 help 168 The trace buffer does not record single loops - helpful if trace 169 is spinning on a while or do loop. 170 171config DEBUG_BFIN_HWTRACE_COMPRESSION_TWO 172 bool "Compress two-level loops" 173 help 174 The trace buffer does not record loops two levels deep. Helpful if 175 the trace is spinning in a nested loop 176 177endchoice 178 179config DEBUG_BFIN_HWTRACE_COMPRESSION 180 int 181 depends on DEBUG_BFIN_HWTRACE_ON 182 default 0 if DEBUG_BFIN_HWTRACE_COMPRESSION_OFF 183 default 1 if DEBUG_BFIN_HWTRACE_COMPRESSION_ONE 184 default 2 if DEBUG_BFIN_HWTRACE_COMPRESSION_TWO 185 186 187config DEBUG_BFIN_HWTRACE_EXPAND 188 bool "Expand Trace Buffer greater than 16 entries" 189 depends on DEBUG_BFIN_HWTRACE_ON 190 default n 191 help 192 By selecting this option, every time the 16 hardware entries in 193 the Blackfin's HW Trace buffer are full, the kernel will move them 194 into a software buffer, for dumping when there is an issue. This 195 has a great impact on performance, (an interrupt every 16 change of 196 flows) and should normally be turned off, except in those nasty 197 debugging sessions 198 199config DEBUG_BFIN_HWTRACE_EXPAND_LEN 200 int "Size of Trace buffer (in power of 2k)" 201 range 0 4 202 depends on DEBUG_BFIN_HWTRACE_EXPAND 203 default 1 204 help 205 This sets the size of the software buffer that the trace information 206 is kept in. 207 0 for (2^0) 1k, or 256 entries, 208 1 for (2^1) 2k, or 512 entries, 209 2 for (2^2) 4k, or 1024 entries, 210 3 for (2^3) 8k, or 2048 entries, 211 4 for (2^4) 16k, or 4096 entries 212 213config DEBUG_BFIN_NO_KERN_HWTRACE 214 bool "Turn off hwtrace in CPLB handlers" 215 depends on DEBUG_BFIN_HWTRACE_ON 216 default y 217 help 218 The CPLB error handler contains a lot of flow changes which can 219 quickly fill up the hardware trace buffer. When debugging crashes, 220 the hardware trace may indicate that the problem lies in kernel 221 space when in reality an application is buggy. 222 223 Say Y here to disable hardware tracing in some known "jumpy" pieces 224 of code so that the trace buffer will extend further back. 225 226config EARLY_PRINTK 227 bool "Early printk" 228 default n 229 select SERIAL_CORE_CONSOLE 230 help 231 This option enables special console drivers which allow the kernel 232 to print messages very early in the bootup process. 233 234 This is useful for kernel debugging when your machine crashes very 235 early before the console code is initialized. After enabling this 236 feature, you must add "earlyprintk=serial,uart0,57600" to the 237 command line (bootargs). It is safe to say Y here in all cases, as 238 all of this lives in the init section and is thrown away after the 239 kernel boots completely. 240 241config CPLB_INFO 242 bool "Display the CPLB information" 243 help 244 Display the CPLB information via /proc/cplbinfo. 245 246config ACCESS_CHECK 247 bool "Check the user pointer address" 248 default y 249 help 250 Usually the pointer transfer from user space is checked to see if its 251 address is in the kernel space. 252 253 Say N here to disable that check to improve the performance. 254 255config BFIN_ISRAM_SELF_TEST 256 bool "isram boot self tests" 257 default n 258 help 259 Run some self tests of the isram driver code at boot. 260 261endmenu