]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
1da177e4 | 2 | |
55f327fa | 3 | config TRACE_IRQFLAGS_SUPPORT |
d013a27c | 4 | def_bool y |
55f327fa | 5 | |
ed004953 | 6 | config TRACE_IRQFLAGS_NMI_SUPPORT |
7 | def_bool y | |
8 | ||
aeb9dd1d LB |
9 | config EARLY_PRINTK_USB |
10 | bool | |
11 | ||
6bcb13b3 BC |
12 | config X86_VERBOSE_BOOTUP |
13 | bool "Enable verbose x86 bootup info messages" | |
14 | default y | |
a7f7f624 | 15 | help |
6bcb13b3 BC |
16 | Enables the informational output from the decompression stage |
17 | (e.g. bzImage) of the boot. If you disable this you will still | |
18 | see errors. Disable this if you want silent bootup. | |
19 | ||
1da177e4 | 20 | config EARLY_PRINTK |
6a108a14 | 21 | bool "Early printk" if EXPERT |
1da177e4 | 22 | default y |
a7f7f624 | 23 | help |
1da177e4 LT |
24 | Write kernel log output directly into the VGA buffer or to a serial |
25 | port. | |
26 | ||
27 | This is useful for kernel debugging when your machine crashes very | |
28 | early before the console code is initialized. For normal operation | |
29 | it is not recommended because it looks ugly and doesn't cooperate | |
aeb9dd1d | 30 | with klogd/syslogd or the X server. You should normally say N here, |
1da177e4 LT |
31 | unless you want to debug such a crash. |
32 | ||
5c05917e YL |
33 | config EARLY_PRINTK_DBGP |
34 | bool "Early printk via EHCI debug port" | |
9749986a | 35 | depends on EARLY_PRINTK && PCI |
aeb9dd1d | 36 | select EARLY_PRINTK_USB |
a7f7f624 | 37 | help |
5c05917e YL |
38 | Write kernel log output directly into the EHCI debug 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 | |
aeb9dd1d | 43 | with klogd/syslogd or the X server. You should normally say N here, |
5c05917e YL |
44 | unless you want to debug such a crash. You need usb debug device. |
45 | ||
aeb9dd1d LB |
46 | config EARLY_PRINTK_USB_XDBC |
47 | bool "Early printk via the xHCI debug port" | |
48 | depends on EARLY_PRINTK && PCI | |
49 | select EARLY_PRINTK_USB | |
a7f7f624 | 50 | help |
aeb9dd1d LB |
51 | Write kernel log output directly into the xHCI debug port. |
52 | ||
53 | One use for this feature is kernel debugging, for example when your | |
54 | machine crashes very early before the regular console code is | |
55 | initialized. Other uses include simpler, lockless logging instead of | |
56 | a full-blown printk console driver + klogd. | |
57 | ||
58 | For normal production environments this is normally not recommended, | |
59 | because it doesn't feed events into klogd/syslogd and doesn't try to | |
60 | print anything on the screen. | |
61 | ||
62 | You should normally say N here, unless you want to debug early | |
63 | crashes or need a very simple printk logging facility. | |
64 | ||
ec6347bb | 65 | config COPY_MC_TEST |
5d8beee2 DW |
66 | def_bool n |
67 | ||
11cc8512 BP |
68 | config EFI_PGT_DUMP |
69 | bool "Dump the EFI pagetable" | |
e1a58320 | 70 | depends on EFI |
2ae27137 | 71 | select PTDUMP_CORE |
a7f7f624 | 72 | help |
11cc8512 BP |
73 | Enable this if you want to dump the EFI page table before |
74 | enabling virtual mode. This can be used to debug miscellaneous | |
75 | issues with the mapping of the EFI runtime regions into that | |
76 | table. | |
77 | ||
3df3212f AS |
78 | config DEBUG_TLBFLUSH |
79 | bool "Set upper limit of TLB entries to flush one-by-one" | |
cd69aa6b | 80 | depends on DEBUG_KERNEL |
a7f7f624 | 81 | help |
3df3212f AS |
82 | |
83 | X86-only for now. | |
84 | ||
85 | This option allows the user to tune the amount of TLB entries the | |
86 | kernel flushes one-by-one instead of doing a full TLB flush. In | |
87 | certain situations, the former is cheaper. This is controlled by the | |
88 | tlb_flushall_shift knob under /sys/kernel/debug/x86. If you set it | |
89 | to -1, the code flushes the whole TLB unconditionally. Otherwise, | |
90 | for positive values of it, the kernel will use single TLB entry | |
91 | invalidating instructions according to the following formula: | |
92 | ||
93 | flush_entries <= active_tlb_entries / 2^tlb_flushall_shift | |
94 | ||
95 | If in doubt, say "N". | |
96 | ||
d013a27c RD |
97 | config IOMMU_DEBUG |
98 | bool "Enable IOMMU debugging" | |
966396d3 | 99 | depends on GART_IOMMU && DEBUG_KERNEL |
d013a27c | 100 | depends on X86_64 |
a7f7f624 | 101 | help |
d013a27c RD |
102 | Force the IOMMU to on even when you have less than 4GB of |
103 | memory and add debugging code. On overflow always panic. And | |
104 | allow to enable IOMMU leak tracing. Can be disabled at boot | |
105 | time with iommu=noforce. This will also enable scatter gather | |
106 | list merging. Currently not recommended for production | |
107 | code. When you use it make sure you have a big enough | |
108 | IOMMU/AGP aperture. Most of the options enabled by this can | |
109 | be set more finegrained using the iommu= command line | |
cb1aaebe | 110 | options. See Documentation/x86/x86_64/boot-options.rst for more |
d013a27c RD |
111 | details. |
112 | ||
113 | config IOMMU_LEAK | |
114 | bool "IOMMU leak tracing" | |
19c1a6f5 | 115 | depends on IOMMU_DEBUG && DMA_API_DEBUG |
a7f7f624 | 116 | help |
d013a27c RD |
117 | Add a simple leak tracer to the IOMMU code. This is useful when you |
118 | are debugging a buggy device driver that leaks IOMMU mappings. | |
119 | ||
6bc5c366 PP |
120 | config HAVE_MMIOTRACE_SUPPORT |
121 | def_bool y | |
8b7d89d0 | 122 | |
ca0e9bad | 123 | config X86_DECODER_SELFTEST |
cbe5c34c | 124 | bool "x86 instruction decoder selftest" |
7720804a | 125 | depends on DEBUG_KERNEL && INSTRUCTION_DECODER |
f8f20234 | 126 | depends on !COMPILE_TEST |
a7f7f624 | 127 | help |
ca0e9bad MH |
128 | Perform x86 instruction decoder selftests at build time. |
129 | This option is useful for checking the sanity of x86 instruction | |
130 | decoder code. | |
131 | If unsure, say "N". | |
132 | ||
6e7c4025 IM |
133 | choice |
134 | prompt "IO delay type" | |
fd59e9e9 | 135 | default IO_DELAY_0X80 |
6e7c4025 IM |
136 | |
137 | config IO_DELAY_0X80 | |
138 | bool "port 0x80 based port-IO delay [recommended]" | |
a7f7f624 | 139 | help |
6e7c4025 IM |
140 | This is the traditional Linux IO delay used for in/out_p. |
141 | It is the most tested hence safest selection here. | |
142 | ||
143 | config IO_DELAY_0XED | |
144 | bool "port 0xed based port-IO delay" | |
a7f7f624 | 145 | help |
6e7c4025 IM |
146 | Use port 0xed as the IO delay. This frees up port 0x80 which is |
147 | often used as a hardware-debug port. | |
148 | ||
149 | config IO_DELAY_UDELAY | |
150 | bool "udelay based port-IO delay" | |
a7f7f624 | 151 | help |
6e7c4025 IM |
152 | Use udelay(2) as the IO delay method. This provides the delay |
153 | while not having any side-effect on the IO port space. | |
154 | ||
155 | config IO_DELAY_NONE | |
156 | bool "no port-IO delay" | |
a7f7f624 | 157 | help |
6e7c4025 IM |
158 | No port-IO delay. Will break on old boxes that require port-IO |
159 | delay for certain operations. Should work on most new machines. | |
160 | ||
161 | endchoice | |
162 | ||
6d7d7433 HY |
163 | config DEBUG_BOOT_PARAMS |
164 | bool "Debug boot parameters" | |
165 | depends on DEBUG_KERNEL | |
166 | depends on DEBUG_FS | |
a7f7f624 | 167 | help |
6d7d7433 HY |
168 | This option will cause struct boot_params to be exported via debugfs. |
169 | ||
0c42f392 | 170 | config CPA_DEBUG |
971a52d6 | 171 | bool "CPA self-test code" |
f316fe68 | 172 | depends on DEBUG_KERNEL |
a7f7f624 | 173 | help |
971a52d6 | 174 | Do change_page_attr() self-tests every 30 seconds. |
0c42f392 | 175 | |
a97439aa AL |
176 | config DEBUG_ENTRY |
177 | bool "Debug low-level entry code" | |
178 | depends on DEBUG_KERNEL | |
a7f7f624 | 179 | help |
a97439aa AL |
180 | This option enables sanity checks in x86's low-level entry code. |
181 | Some of these sanity checks may slow down kernel entries and | |
182 | exits or otherwise impact performance. | |
183 | ||
a97439aa AL |
184 | If unsure, say N. |
185 | ||
99e8b9ca DZ |
186 | config DEBUG_NMI_SELFTEST |
187 | bool "NMI Selftest" | |
4f941c57 | 188 | depends on DEBUG_KERNEL && X86_LOCAL_APIC |
a7f7f624 | 189 | help |
99e8b9ca DZ |
190 | Enabling this option turns on a quick NMI selftest to verify |
191 | that the NMI behaves correctly. | |
192 | ||
193 | This might help diagnose strange hangs that rely on NMI to | |
194 | function properly. | |
195 | ||
196 | If unsure, say N. | |
197 | ||
28a375df BD |
198 | config DEBUG_IMR_SELFTEST |
199 | bool "Isolated Memory Region self test" | |
28a375df | 200 | depends on INTEL_IMR |
a7f7f624 | 201 | help |
28a375df BD |
202 | This option enables automated sanity testing of the IMR code. |
203 | Some simple tests are run to verify IMR bounds checking, alignment | |
204 | and overlapping. This option is really only useful if you are | |
205 | debugging an IMR memory map or are modifying the IMR code and want to | |
206 | test your changes. | |
207 | ||
208 | If unsure say N here. | |
209 | ||
e97131a8 IM |
210 | config X86_DEBUG_FPU |
211 | bool "Debug the x86 FPU code" | |
212 | depends on DEBUG_KERNEL | |
213 | default y | |
a7f7f624 | 214 | help |
e97131a8 IM |
215 | If this option is enabled then there will be extra sanity |
216 | checks and (boot time) debug printouts added to the kernel. | |
217 | This debugging adds some small amount of runtime overhead | |
218 | to the kernel. | |
219 | ||
220 | If unsure, say N. | |
221 | ||
956079e0 SP |
222 | config PUNIT_ATOM_DEBUG |
223 | tristate "ATOM Punit debug driver" | |
d689c64d | 224 | depends on PCI |
956079e0 SP |
225 | select DEBUG_FS |
226 | select IOSF_MBI | |
a7f7f624 | 227 | help |
956079e0 SP |
228 | This is a debug driver, which gets the power states |
229 | of all Punit North Complex devices. The power states of | |
230 | each device is exposed as part of the debugfs interface. | |
231 | The current power state can be read from | |
232 | /sys/kernel/debug/punit_atom/dev_power_state | |
233 | ||
81d38719 JP |
234 | choice |
235 | prompt "Choose kernel unwinder" | |
fc72ae40 JP |
236 | default UNWINDER_ORC if X86_64 |
237 | default UNWINDER_FRAME_POINTER if X86_32 | |
a7f7f624 | 238 | help |
81d38719 JP |
239 | This determines which method will be used for unwinding kernel stack |
240 | traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack, | |
241 | livepatch, lockdep, and more. | |
242 | ||
11af8474 | 243 | config UNWINDER_ORC |
ee9f8fce | 244 | bool "ORC unwinder" |
81d38719 | 245 | depends on X86_64 |
ee9f8fce | 246 | select STACK_VALIDATION |
a7f7f624 | 247 | help |
ee9f8fce JP |
248 | This option enables the ORC (Oops Rewind Capability) unwinder for |
249 | unwinding kernel stack traces. It uses a custom data format which is | |
250 | a simplified version of the DWARF Call Frame Information standard. | |
251 | ||
252 | This unwinder is more accurate across interrupt entry frames than the | |
a34a766f JP |
253 | frame pointer unwinder. It also enables a 5-10% performance |
254 | improvement across the entire kernel compared to frame pointers. | |
ee9f8fce JP |
255 | |
256 | Enabling this option will increase the kernel's runtime memory usage | |
257 | by roughly 2-4MB, depending on your kernel config. | |
258 | ||
fc72ae40 JP |
259 | config UNWINDER_FRAME_POINTER |
260 | bool "Frame pointer unwinder" | |
261 | select FRAME_POINTER | |
a7f7f624 | 262 | help |
fc72ae40 JP |
263 | This option enables the frame pointer unwinder for unwinding kernel |
264 | stack traces. | |
265 | ||
266 | The unwinder itself is fast and it uses less RAM than the ORC | |
267 | unwinder, but the kernel text size will grow by ~3% and the kernel's | |
268 | overall performance will degrade by roughly 5-10%. | |
269 | ||
11af8474 | 270 | config UNWINDER_GUESS |
81d38719 JP |
271 | bool "Guess unwinder" |
272 | depends on EXPERT | |
0a373d4f | 273 | depends on !STACKDEPOT |
a7f7f624 | 274 | help |
81d38719 JP |
275 | This option enables the "guess" unwinder for unwinding kernel stack |
276 | traces. It scans the stack and reports every kernel text address it | |
277 | finds. Some of the addresses it reports may be incorrect. | |
278 | ||
279 | While this option often produces false positives, it can still be | |
280 | useful in many cases. Unlike the other unwinders, it has no runtime | |
281 | overhead. | |
282 | ||
283 | endchoice | |
284 | ||
285 | config FRAME_POINTER | |
11af8474 | 286 | depends on !UNWINDER_ORC && !UNWINDER_GUESS |
81d38719 | 287 | bool |