xref: /openbmc/linux/arch/x86/Kconfig.debug (revision a1e58bbd)
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