| .. | .. |
|---|
| 3 | 3 | config TRACE_IRQFLAGS_SUPPORT |
|---|
| 4 | 4 | def_bool y |
|---|
| 5 | 5 | |
|---|
| 6 | +config TRACE_IRQFLAGS_NMI_SUPPORT |
|---|
| 7 | + def_bool y |
|---|
| 8 | + |
|---|
| 6 | 9 | config EARLY_PRINTK_USB |
|---|
| 7 | 10 | bool |
|---|
| 8 | 11 | |
|---|
| 9 | 12 | config X86_VERBOSE_BOOTUP |
|---|
| 10 | 13 | bool "Enable verbose x86 bootup info messages" |
|---|
| 11 | 14 | default y |
|---|
| 12 | | - ---help--- |
|---|
| 15 | + help |
|---|
| 13 | 16 | Enables the informational output from the decompression stage |
|---|
| 14 | 17 | (e.g. bzImage) of the boot. If you disable this you will still |
|---|
| 15 | 18 | see errors. Disable this if you want silent bootup. |
|---|
| .. | .. |
|---|
| 17 | 20 | config EARLY_PRINTK |
|---|
| 18 | 21 | bool "Early printk" if EXPERT |
|---|
| 19 | 22 | default y |
|---|
| 20 | | - ---help--- |
|---|
| 23 | + help |
|---|
| 21 | 24 | Write kernel log output directly into the VGA buffer or to a serial |
|---|
| 22 | 25 | port. |
|---|
| 23 | 26 | |
|---|
| .. | .. |
|---|
| 31 | 34 | bool "Early printk via EHCI debug port" |
|---|
| 32 | 35 | depends on EARLY_PRINTK && PCI |
|---|
| 33 | 36 | select EARLY_PRINTK_USB |
|---|
| 34 | | - ---help--- |
|---|
| 37 | + help |
|---|
| 35 | 38 | Write kernel log output directly into the EHCI debug port. |
|---|
| 36 | 39 | |
|---|
| 37 | 40 | This is useful for kernel debugging when your machine crashes very |
|---|
| .. | .. |
|---|
| 40 | 43 | with klogd/syslogd or the X server. You should normally say N here, |
|---|
| 41 | 44 | unless you want to debug such a crash. You need usb debug device. |
|---|
| 42 | 45 | |
|---|
| 43 | | -config EARLY_PRINTK_EFI |
|---|
| 44 | | - bool "Early printk via the EFI framebuffer" |
|---|
| 45 | | - depends on EFI && EARLY_PRINTK |
|---|
| 46 | | - select FONT_SUPPORT |
|---|
| 47 | | - ---help--- |
|---|
| 48 | | - Write kernel log output directly into the EFI framebuffer. |
|---|
| 49 | | - |
|---|
| 50 | | - This is useful for kernel debugging when your machine crashes very |
|---|
| 51 | | - early before the console code is initialized. |
|---|
| 52 | | - |
|---|
| 53 | 46 | config EARLY_PRINTK_USB_XDBC |
|---|
| 54 | 47 | bool "Early printk via the xHCI debug port" |
|---|
| 55 | 48 | depends on EARLY_PRINTK && PCI |
|---|
| 56 | 49 | select EARLY_PRINTK_USB |
|---|
| 57 | | - ---help--- |
|---|
| 50 | + help |
|---|
| 58 | 51 | Write kernel log output directly into the xHCI debug port. |
|---|
| 59 | 52 | |
|---|
| 60 | 53 | One use for this feature is kernel debugging, for example when your |
|---|
| .. | .. |
|---|
| 69 | 62 | You should normally say N here, unless you want to debug early |
|---|
| 70 | 63 | crashes or need a very simple printk logging facility. |
|---|
| 71 | 64 | |
|---|
| 72 | | -config MCSAFE_TEST |
|---|
| 65 | +config COPY_MC_TEST |
|---|
| 73 | 66 | def_bool n |
|---|
| 74 | | - |
|---|
| 75 | | -config X86_PTDUMP_CORE |
|---|
| 76 | | - def_bool n |
|---|
| 77 | | - |
|---|
| 78 | | -config X86_PTDUMP |
|---|
| 79 | | - tristate "Export kernel pagetable layout to userspace via debugfs" |
|---|
| 80 | | - depends on DEBUG_KERNEL |
|---|
| 81 | | - select DEBUG_FS |
|---|
| 82 | | - select X86_PTDUMP_CORE |
|---|
| 83 | | - ---help--- |
|---|
| 84 | | - Say Y here if you want to show the kernel pagetable layout in a |
|---|
| 85 | | - debugfs file. This information is only useful for kernel developers |
|---|
| 86 | | - who are working in architecture specific areas of the kernel. |
|---|
| 87 | | - It is probably not a good idea to enable this feature in a production |
|---|
| 88 | | - kernel. |
|---|
| 89 | | - If in doubt, say "N" |
|---|
| 90 | 67 | |
|---|
| 91 | 68 | config EFI_PGT_DUMP |
|---|
| 92 | 69 | bool "Dump the EFI pagetable" |
|---|
| 93 | 70 | depends on EFI |
|---|
| 94 | | - select X86_PTDUMP_CORE |
|---|
| 95 | | - ---help--- |
|---|
| 71 | + select PTDUMP_CORE |
|---|
| 72 | + help |
|---|
| 96 | 73 | Enable this if you want to dump the EFI page table before |
|---|
| 97 | 74 | enabling virtual mode. This can be used to debug miscellaneous |
|---|
| 98 | 75 | issues with the mapping of the EFI runtime regions into that |
|---|
| 99 | 76 | table. |
|---|
| 100 | 77 | |
|---|
| 101 | | -config DEBUG_WX |
|---|
| 102 | | - bool "Warn on W+X mappings at boot" |
|---|
| 103 | | - select X86_PTDUMP_CORE |
|---|
| 104 | | - ---help--- |
|---|
| 105 | | - Generate a warning if any W+X mappings are found at boot. |
|---|
| 106 | | - |
|---|
| 107 | | - This is useful for discovering cases where the kernel is leaving |
|---|
| 108 | | - W+X mappings after applying NX, as such mappings are a security risk. |
|---|
| 109 | | - |
|---|
| 110 | | - Look for a message in dmesg output like this: |
|---|
| 111 | | - |
|---|
| 112 | | - x86/mm: Checked W+X mappings: passed, no W+X pages found. |
|---|
| 113 | | - |
|---|
| 114 | | - or like this, if the check failed: |
|---|
| 115 | | - |
|---|
| 116 | | - x86/mm: Checked W+X mappings: FAILED, <N> W+X pages found. |
|---|
| 117 | | - |
|---|
| 118 | | - Note that even if the check fails, your kernel is possibly |
|---|
| 119 | | - still fine, as W+X mappings are not a security hole in |
|---|
| 120 | | - themselves, what they do is that they make the exploitation |
|---|
| 121 | | - of other unfixed kernel bugs easier. |
|---|
| 122 | | - |
|---|
| 123 | | - There is no runtime or memory usage effect of this option |
|---|
| 124 | | - once the kernel has booted up - it's a one time check. |
|---|
| 125 | | - |
|---|
| 126 | | - If in doubt, say "Y". |
|---|
| 127 | | - |
|---|
| 128 | | -config DOUBLEFAULT |
|---|
| 129 | | - default y |
|---|
| 130 | | - bool "Enable doublefault exception handler" if EXPERT |
|---|
| 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 | | - |
|---|
| 137 | 78 | config DEBUG_TLBFLUSH |
|---|
| 138 | 79 | bool "Set upper limit of TLB entries to flush one-by-one" |
|---|
| 139 | 80 | depends on DEBUG_KERNEL |
|---|
| 140 | | - ---help--- |
|---|
| 81 | + help |
|---|
| 141 | 82 | |
|---|
| 142 | 83 | X86-only for now. |
|---|
| 143 | 84 | |
|---|
| .. | .. |
|---|
| 157 | 98 | bool "Enable IOMMU debugging" |
|---|
| 158 | 99 | depends on GART_IOMMU && DEBUG_KERNEL |
|---|
| 159 | 100 | depends on X86_64 |
|---|
| 160 | | - ---help--- |
|---|
| 101 | + help |
|---|
| 161 | 102 | Force the IOMMU to on even when you have less than 4GB of |
|---|
| 162 | 103 | memory and add debugging code. On overflow always panic. And |
|---|
| 163 | 104 | allow to enable IOMMU leak tracing. Can be disabled at boot |
|---|
| .. | .. |
|---|
| 166 | 107 | code. When you use it make sure you have a big enough |
|---|
| 167 | 108 | IOMMU/AGP aperture. Most of the options enabled by this can |
|---|
| 168 | 109 | be set more finegrained using the iommu= command line |
|---|
| 169 | | - options. See Documentation/x86/x86_64/boot-options.txt for more |
|---|
| 110 | + options. See Documentation/x86/x86_64/boot-options.rst for more |
|---|
| 170 | 111 | details. |
|---|
| 171 | 112 | |
|---|
| 172 | 113 | config IOMMU_LEAK |
|---|
| 173 | 114 | bool "IOMMU leak tracing" |
|---|
| 174 | 115 | depends on IOMMU_DEBUG && DMA_API_DEBUG |
|---|
| 175 | | - ---help--- |
|---|
| 116 | + help |
|---|
| 176 | 117 | Add a simple leak tracer to the IOMMU code. This is useful when you |
|---|
| 177 | 118 | are debugging a buggy device driver that leaks IOMMU mappings. |
|---|
| 178 | 119 | |
|---|
| .. | .. |
|---|
| 183 | 124 | bool "x86 instruction decoder selftest" |
|---|
| 184 | 125 | depends on DEBUG_KERNEL && INSTRUCTION_DECODER |
|---|
| 185 | 126 | depends on !COMPILE_TEST |
|---|
| 186 | | - ---help--- |
|---|
| 127 | + help |
|---|
| 187 | 128 | Perform x86 instruction decoder selftests at build time. |
|---|
| 188 | 129 | This option is useful for checking the sanity of x86 instruction |
|---|
| 189 | 130 | decoder code. |
|---|
| 190 | 131 | If unsure, say "N". |
|---|
| 191 | | - |
|---|
| 192 | | -# |
|---|
| 193 | | -# IO delay types: |
|---|
| 194 | | -# |
|---|
| 195 | | - |
|---|
| 196 | | -config IO_DELAY_TYPE_0X80 |
|---|
| 197 | | - int |
|---|
| 198 | | - default "0" |
|---|
| 199 | | - |
|---|
| 200 | | -config IO_DELAY_TYPE_0XED |
|---|
| 201 | | - int |
|---|
| 202 | | - default "1" |
|---|
| 203 | | - |
|---|
| 204 | | -config IO_DELAY_TYPE_UDELAY |
|---|
| 205 | | - int |
|---|
| 206 | | - default "2" |
|---|
| 207 | | - |
|---|
| 208 | | -config IO_DELAY_TYPE_NONE |
|---|
| 209 | | - int |
|---|
| 210 | | - default "3" |
|---|
| 211 | 132 | |
|---|
| 212 | 133 | choice |
|---|
| 213 | 134 | prompt "IO delay type" |
|---|
| .. | .. |
|---|
| 215 | 136 | |
|---|
| 216 | 137 | config IO_DELAY_0X80 |
|---|
| 217 | 138 | bool "port 0x80 based port-IO delay [recommended]" |
|---|
| 218 | | - ---help--- |
|---|
| 139 | + help |
|---|
| 219 | 140 | This is the traditional Linux IO delay used for in/out_p. |
|---|
| 220 | 141 | It is the most tested hence safest selection here. |
|---|
| 221 | 142 | |
|---|
| 222 | 143 | config IO_DELAY_0XED |
|---|
| 223 | 144 | bool "port 0xed based port-IO delay" |
|---|
| 224 | | - ---help--- |
|---|
| 145 | + help |
|---|
| 225 | 146 | Use port 0xed as the IO delay. This frees up port 0x80 which is |
|---|
| 226 | 147 | often used as a hardware-debug port. |
|---|
| 227 | 148 | |
|---|
| 228 | 149 | config IO_DELAY_UDELAY |
|---|
| 229 | 150 | bool "udelay based port-IO delay" |
|---|
| 230 | | - ---help--- |
|---|
| 151 | + help |
|---|
| 231 | 152 | Use udelay(2) as the IO delay method. This provides the delay |
|---|
| 232 | 153 | while not having any side-effect on the IO port space. |
|---|
| 233 | 154 | |
|---|
| 234 | 155 | config IO_DELAY_NONE |
|---|
| 235 | 156 | bool "no port-IO delay" |
|---|
| 236 | | - ---help--- |
|---|
| 157 | + help |
|---|
| 237 | 158 | No port-IO delay. Will break on old boxes that require port-IO |
|---|
| 238 | 159 | delay for certain operations. Should work on most new machines. |
|---|
| 239 | 160 | |
|---|
| 240 | 161 | endchoice |
|---|
| 241 | 162 | |
|---|
| 242 | | -if IO_DELAY_0X80 |
|---|
| 243 | | -config DEFAULT_IO_DELAY_TYPE |
|---|
| 244 | | - int |
|---|
| 245 | | - default IO_DELAY_TYPE_0X80 |
|---|
| 246 | | -endif |
|---|
| 247 | | - |
|---|
| 248 | | -if IO_DELAY_0XED |
|---|
| 249 | | -config DEFAULT_IO_DELAY_TYPE |
|---|
| 250 | | - int |
|---|
| 251 | | - default IO_DELAY_TYPE_0XED |
|---|
| 252 | | -endif |
|---|
| 253 | | - |
|---|
| 254 | | -if IO_DELAY_UDELAY |
|---|
| 255 | | -config DEFAULT_IO_DELAY_TYPE |
|---|
| 256 | | - int |
|---|
| 257 | | - default IO_DELAY_TYPE_UDELAY |
|---|
| 258 | | -endif |
|---|
| 259 | | - |
|---|
| 260 | | -if IO_DELAY_NONE |
|---|
| 261 | | -config DEFAULT_IO_DELAY_TYPE |
|---|
| 262 | | - int |
|---|
| 263 | | - default IO_DELAY_TYPE_NONE |
|---|
| 264 | | -endif |
|---|
| 265 | | - |
|---|
| 266 | 163 | config DEBUG_BOOT_PARAMS |
|---|
| 267 | 164 | bool "Debug boot parameters" |
|---|
| 268 | 165 | depends on DEBUG_KERNEL |
|---|
| 269 | 166 | depends on DEBUG_FS |
|---|
| 270 | | - ---help--- |
|---|
| 167 | + help |
|---|
| 271 | 168 | This option will cause struct boot_params to be exported via debugfs. |
|---|
| 272 | 169 | |
|---|
| 273 | 170 | config CPA_DEBUG |
|---|
| 274 | 171 | bool "CPA self-test code" |
|---|
| 275 | 172 | depends on DEBUG_KERNEL |
|---|
| 276 | | - ---help--- |
|---|
| 173 | + help |
|---|
| 277 | 174 | Do change_page_attr() self-tests every 30 seconds. |
|---|
| 278 | | - |
|---|
| 279 | | -config OPTIMIZE_INLINING |
|---|
| 280 | | - bool "Allow gcc to uninline functions marked 'inline'" |
|---|
| 281 | | - ---help--- |
|---|
| 282 | | - This option determines if the kernel forces gcc to inline the functions |
|---|
| 283 | | - developers have marked 'inline'. Doing so takes away freedom from gcc to |
|---|
| 284 | | - do what it thinks is best, which is desirable for the gcc 3.x series of |
|---|
| 285 | | - compilers. The gcc 4.x series have a rewritten inlining algorithm and |
|---|
| 286 | | - enabling this option will generate a smaller kernel there. Hopefully |
|---|
| 287 | | - this algorithm is so good that allowing gcc 4.x and above to make the |
|---|
| 288 | | - decision will become the default in the future. Until then this option |
|---|
| 289 | | - is there to test gcc for this. |
|---|
| 290 | | - |
|---|
| 291 | | - If unsure, say N. |
|---|
| 292 | 175 | |
|---|
| 293 | 176 | config DEBUG_ENTRY |
|---|
| 294 | 177 | bool "Debug low-level entry code" |
|---|
| 295 | 178 | depends on DEBUG_KERNEL |
|---|
| 296 | | - ---help--- |
|---|
| 179 | + help |
|---|
| 297 | 180 | This option enables sanity checks in x86's low-level entry code. |
|---|
| 298 | 181 | Some of these sanity checks may slow down kernel entries and |
|---|
| 299 | 182 | exits or otherwise impact performance. |
|---|
| .. | .. |
|---|
| 303 | 186 | config DEBUG_NMI_SELFTEST |
|---|
| 304 | 187 | bool "NMI Selftest" |
|---|
| 305 | 188 | depends on DEBUG_KERNEL && X86_LOCAL_APIC |
|---|
| 306 | | - ---help--- |
|---|
| 189 | + help |
|---|
| 307 | 190 | Enabling this option turns on a quick NMI selftest to verify |
|---|
| 308 | 191 | that the NMI behaves correctly. |
|---|
| 309 | 192 | |
|---|
| .. | .. |
|---|
| 314 | 197 | |
|---|
| 315 | 198 | config DEBUG_IMR_SELFTEST |
|---|
| 316 | 199 | bool "Isolated Memory Region self test" |
|---|
| 317 | | - default n |
|---|
| 318 | 200 | depends on INTEL_IMR |
|---|
| 319 | | - ---help--- |
|---|
| 201 | + help |
|---|
| 320 | 202 | This option enables automated sanity testing of the IMR code. |
|---|
| 321 | 203 | Some simple tests are run to verify IMR bounds checking, alignment |
|---|
| 322 | 204 | and overlapping. This option is really only useful if you are |
|---|
| .. | .. |
|---|
| 329 | 211 | bool "Debug the x86 FPU code" |
|---|
| 330 | 212 | depends on DEBUG_KERNEL |
|---|
| 331 | 213 | default y |
|---|
| 332 | | - ---help--- |
|---|
| 214 | + help |
|---|
| 333 | 215 | If this option is enabled then there will be extra sanity |
|---|
| 334 | 216 | checks and (boot time) debug printouts added to the kernel. |
|---|
| 335 | 217 | This debugging adds some small amount of runtime overhead |
|---|
| .. | .. |
|---|
| 342 | 224 | depends on PCI |
|---|
| 343 | 225 | select DEBUG_FS |
|---|
| 344 | 226 | select IOSF_MBI |
|---|
| 345 | | - ---help--- |
|---|
| 227 | + help |
|---|
| 346 | 228 | This is a debug driver, which gets the power states |
|---|
| 347 | 229 | of all Punit North Complex devices. The power states of |
|---|
| 348 | 230 | each device is exposed as part of the debugfs interface. |
|---|
| .. | .. |
|---|
| 353 | 235 | prompt "Choose kernel unwinder" |
|---|
| 354 | 236 | default UNWINDER_ORC if X86_64 |
|---|
| 355 | 237 | default UNWINDER_FRAME_POINTER if X86_32 |
|---|
| 356 | | - ---help--- |
|---|
| 238 | + help |
|---|
| 357 | 239 | This determines which method will be used for unwinding kernel stack |
|---|
| 358 | 240 | traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack, |
|---|
| 359 | 241 | livepatch, lockdep, and more. |
|---|
| .. | .. |
|---|
| 362 | 244 | bool "ORC unwinder" |
|---|
| 363 | 245 | depends on X86_64 |
|---|
| 364 | 246 | select STACK_VALIDATION |
|---|
| 365 | | - ---help--- |
|---|
| 247 | + help |
|---|
| 366 | 248 | This option enables the ORC (Oops Rewind Capability) unwinder for |
|---|
| 367 | 249 | unwinding kernel stack traces. It uses a custom data format which is |
|---|
| 368 | 250 | a simplified version of the DWARF Call Frame Information standard. |
|---|
| .. | .. |
|---|
| 377 | 259 | config UNWINDER_FRAME_POINTER |
|---|
| 378 | 260 | bool "Frame pointer unwinder" |
|---|
| 379 | 261 | select FRAME_POINTER |
|---|
| 380 | | - ---help--- |
|---|
| 262 | + help |
|---|
| 381 | 263 | This option enables the frame pointer unwinder for unwinding kernel |
|---|
| 382 | 264 | stack traces. |
|---|
| 383 | 265 | |
|---|
| .. | .. |
|---|
| 385 | 267 | unwinder, but the kernel text size will grow by ~3% and the kernel's |
|---|
| 386 | 268 | overall performance will degrade by roughly 5-10%. |
|---|
| 387 | 269 | |
|---|
| 388 | | - This option is recommended if you want to use the livepatch |
|---|
| 389 | | - consistency model, as this is currently the only way to get a |
|---|
| 390 | | - reliable stack trace (CONFIG_HAVE_RELIABLE_STACKTRACE). |
|---|
| 391 | | - |
|---|
| 392 | 270 | config UNWINDER_GUESS |
|---|
| 393 | 271 | bool "Guess unwinder" |
|---|
| 394 | 272 | depends on EXPERT |
|---|
| 395 | 273 | depends on !STACKDEPOT |
|---|
| 396 | | - ---help--- |
|---|
| 274 | + help |
|---|
| 397 | 275 | This option enables the "guess" unwinder for unwinding kernel stack |
|---|
| 398 | 276 | traces. It scans the stack and reports every kernel text address it |
|---|
| 399 | 277 | finds. Some of the addresses it reports may be incorrect. |
|---|