xref: /openbmc/linux/arch/x86/Kconfig.debug (revision 643d1f7f)
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
37comment "Page alloc debug is incompatible with Software Suspend on i386"
38	depends on DEBUG_KERNEL && HIBERNATION
39	depends on X86_32
40
41config DEBUG_PAGEALLOC
42	bool "Debug page memory allocations"
43	depends on DEBUG_KERNEL && X86_32
44	help
45	  Unmap pages from the kernel linear mapping after free_pages().
46	  This results in a large slowdown, but helps to find certain types
47	  of memory corruptions.
48
49config DEBUG_PER_CPU_MAPS
50	bool "Debug access to per_cpu maps"
51	depends on DEBUG_KERNEL
52	depends on X86_64_SMP
53	default n
54	help
55	  Say Y to verify that the per_cpu map being accessed has
56	  been setup.  Adds a fair amount of code to kernel memory
57	  and decreases performance.
58
59	  Say N if unsure.
60
61config DEBUG_RODATA
62	bool "Write protect kernel read-only data structures"
63	default y
64	depends on DEBUG_KERNEL
65	help
66	  Mark the kernel read-only data as write-protected in the pagetables,
67	  in order to catch accidental (and incorrect) writes to such const
68	  data. This is recommended so that we can catch kernel bugs sooner.
69	  If in doubt, say "Y".
70
71config DEBUG_RODATA_TEST
72	bool "Testcase for the DEBUG_RODATA feature"
73	depends on DEBUG_RODATA
74	help
75	  This option enables a testcase for the DEBUG_RODATA
76	  feature as well as for the change_page_attr() infrastructure.
77	  If in doubt, say "N"
78
79config DEBUG_NX_TEST
80	tristate "Testcase for the NX non-executable stack feature"
81	depends on DEBUG_KERNEL && m
82	help
83	  This option enables a testcase for the CPU NX capability
84	  and the software setup of this feature.
85	  If in doubt, say "N"
86
87config 4KSTACKS
88	bool "Use 4Kb for kernel stacks instead of 8Kb"
89	depends on DEBUG_KERNEL
90	depends on X86_32
91	help
92	  If you say Y here the kernel will use a 4Kb stacksize for the
93	  kernel stack attached to each process/thread. This facilitates
94	  running more threads on a system and also reduces the pressure
95	  on the VM subsystem for higher order allocations. This option
96	  will also use IRQ stacks to compensate for the reduced stackspace.
97
98config X86_FIND_SMP_CONFIG
99	def_bool y
100	depends on X86_LOCAL_APIC || X86_VOYAGER
101	depends on X86_32
102
103config X86_MPPARSE
104	def_bool y
105	depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
106
107config DOUBLEFAULT
108	default y
109	bool "Enable doublefault exception handler" if EMBEDDED
110	depends on X86_32
111	help
112	  This option allows trapping of rare doublefault exceptions that
113	  would otherwise cause a system to silently reboot. Disabling this
114	  option saves about 4k and might cause you much additional grey
115	  hair.
116
117config IOMMU_DEBUG
118	bool "Enable IOMMU debugging"
119	depends on GART_IOMMU && DEBUG_KERNEL
120	depends on X86_64
121	help
122	  Force the IOMMU to on even when you have less than 4GB of
123	  memory and add debugging code. On overflow always panic. And
124	  allow to enable IOMMU leak tracing. Can be disabled at boot
125	  time with iommu=noforce. This will also enable scatter gather
126	  list merging.  Currently not recommended for production
127	  code. When you use it make sure you have a big enough
128	  IOMMU/AGP aperture.  Most of the options enabled by this can
129	  be set more finegrained using the iommu= command line
130	  options. See Documentation/x86_64/boot-options.txt for more
131	  details.
132
133config IOMMU_LEAK
134	bool "IOMMU leak tracing"
135	depends on DEBUG_KERNEL
136	depends on IOMMU_DEBUG
137	help
138	  Add a simple leak tracer to the IOMMU code. This is useful when you
139	  are debugging a buggy device driver that leaks IOMMU mappings.
140
141#
142# IO delay types:
143#
144
145config IO_DELAY_TYPE_0X80
146	int
147	default "0"
148
149config IO_DELAY_TYPE_0XED
150	int
151	default "1"
152
153config IO_DELAY_TYPE_UDELAY
154	int
155	default "2"
156
157config IO_DELAY_TYPE_NONE
158	int
159	default "3"
160
161choice
162	prompt "IO delay type"
163	default IO_DELAY_0XED
164
165config IO_DELAY_0X80
166	bool "port 0x80 based port-IO delay [recommended]"
167	help
168	  This is the traditional Linux IO delay used for in/out_p.
169	  It is the most tested hence safest selection here.
170
171config IO_DELAY_0XED
172	bool "port 0xed based port-IO delay"
173	help
174	  Use port 0xed as the IO delay. This frees up port 0x80 which is
175	  often used as a hardware-debug port.
176
177config IO_DELAY_UDELAY
178	bool "udelay based port-IO delay"
179	help
180	  Use udelay(2) as the IO delay method. This provides the delay
181	  while not having any side-effect on the IO port space.
182
183config IO_DELAY_NONE
184	bool "no port-IO delay"
185	help
186	  No port-IO delay. Will break on old boxes that require port-IO
187	  delay for certain operations. Should work on most new machines.
188
189endchoice
190
191if IO_DELAY_0X80
192config DEFAULT_IO_DELAY_TYPE
193	int
194	default IO_DELAY_TYPE_0X80
195endif
196
197if IO_DELAY_0XED
198config DEFAULT_IO_DELAY_TYPE
199	int
200	default IO_DELAY_TYPE_0XED
201endif
202
203if IO_DELAY_UDELAY
204config DEFAULT_IO_DELAY_TYPE
205	int
206	default IO_DELAY_TYPE_UDELAY
207endif
208
209if IO_DELAY_NONE
210config DEFAULT_IO_DELAY_TYPE
211	int
212	default IO_DELAY_TYPE_NONE
213endif
214
215config DEBUG_BOOT_PARAMS
216	bool "Debug boot parameters"
217	depends on DEBUG_KERNEL
218	depends on DEBUG_FS
219	help
220	  This option will cause struct boot_params to be exported via debugfs.
221
222config CPA_DEBUG
223	bool "CPA self test code"
224	depends on DEBUG_KERNEL
225	help
226	  Do change_page_attr self tests at boot.
227
228endmenu
229