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