xref: /openbmc/linux/arch/Kconfig (revision 75f25bd3)
1#
2# General architecture dependent options
3#
4
5config OPROFILE
6	tristate "OProfile system profiling"
7	depends on PROFILING
8	depends on HAVE_OPROFILE
9	select RING_BUFFER
10	select RING_BUFFER_ALLOW_SWAP
11	help
12	  OProfile is a profiling system capable of profiling the
13	  whole system, include the kernel, kernel modules, libraries,
14	  and applications.
15
16	  If unsure, say N.
17
18config OPROFILE_EVENT_MULTIPLEX
19	bool "OProfile multiplexing support (EXPERIMENTAL)"
20	default n
21	depends on OPROFILE && X86
22	help
23	  The number of hardware counters is limited. The multiplexing
24	  feature enables OProfile to gather more events than counters
25	  are provided by the hardware. This is realized by switching
26	  between events at an user specified time interval.
27
28	  If unsure, say N.
29
30config HAVE_OPROFILE
31	bool
32
33config KPROBES
34	bool "Kprobes"
35	depends on MODULES
36	depends on HAVE_KPROBES
37	select KALLSYMS
38	help
39	  Kprobes allows you to trap at almost any kernel address and
40	  execute a callback function.  register_kprobe() establishes
41	  a probepoint and specifies the callback.  Kprobes is useful
42	  for kernel debugging, non-intrusive instrumentation and testing.
43	  If in doubt, say "N".
44
45config JUMP_LABEL
46       bool "Optimize trace point call sites"
47       depends on HAVE_ARCH_JUMP_LABEL
48       help
49         If it is detected that the compiler has support for "asm goto",
50	 the kernel will compile trace point locations with just a
51	 nop instruction. When trace points are enabled, the nop will
52	 be converted to a jump to the trace function. This technique
53	 lowers overhead and stress on the branch prediction of the
54	 processor.
55
56	 On i386, options added to the compiler flags may increase
57	 the size of the kernel slightly.
58
59config OPTPROBES
60	def_bool y
61	depends on KPROBES && HAVE_OPTPROBES
62	depends on !PREEMPT
63
64config HAVE_EFFICIENT_UNALIGNED_ACCESS
65	bool
66	help
67	  Some architectures are unable to perform unaligned accesses
68	  without the use of get_unaligned/put_unaligned. Others are
69	  unable to perform such accesses efficiently (e.g. trap on
70	  unaligned access and require fixing it up in the exception
71	  handler.)
72
73	  This symbol should be selected by an architecture if it can
74	  perform unaligned accesses efficiently to allow different
75	  code paths to be selected for these cases. Some network
76	  drivers, for example, could opt to not fix up alignment
77	  problems with received packets if doing so would not help
78	  much.
79
80	  See Documentation/unaligned-memory-access.txt for more
81	  information on the topic of unaligned memory accesses.
82
83config HAVE_SYSCALL_WRAPPERS
84	bool
85
86config KRETPROBES
87	def_bool y
88	depends on KPROBES && HAVE_KRETPROBES
89
90config USER_RETURN_NOTIFIER
91	bool
92	depends on HAVE_USER_RETURN_NOTIFIER
93	help
94	  Provide a kernel-internal notification when a cpu is about to
95	  switch to user mode.
96
97config HAVE_IOREMAP_PROT
98	bool
99
100config HAVE_KPROBES
101	bool
102
103config HAVE_KRETPROBES
104	bool
105
106config HAVE_OPTPROBES
107	bool
108#
109# An arch should select this if it provides all these things:
110#
111#	task_pt_regs()		in asm/processor.h or asm/ptrace.h
112#	arch_has_single_step()	if there is hardware single-step support
113#	arch_has_block_step()	if there is hardware block-step support
114#	asm/syscall.h		supplying asm-generic/syscall.h interface
115#	linux/regset.h		user_regset interfaces
116#	CORE_DUMP_USE_REGSET	#define'd in linux/elf.h
117#	TIF_SYSCALL_TRACE	calls tracehook_report_syscall_{entry,exit}
118#	TIF_NOTIFY_RESUME	calls tracehook_notify_resume()
119#	signal delivery		calls tracehook_signal_handler()
120#
121config HAVE_ARCH_TRACEHOOK
122	bool
123
124config HAVE_DMA_ATTRS
125	bool
126
127config USE_GENERIC_SMP_HELPERS
128	bool
129
130config HAVE_REGS_AND_STACK_ACCESS_API
131	bool
132	help
133	  This symbol should be selected by an architecure if it supports
134	  the API needed to access registers and stack entries from pt_regs,
135	  declared in asm/ptrace.h
136	  For example the kprobes-based event tracer needs this API.
137
138config HAVE_CLK
139	bool
140	help
141	  The <linux/clk.h> calls support software clock gating and
142	  thus are a key power management tool on many systems.
143
144config HAVE_DMA_API_DEBUG
145	bool
146
147config HAVE_HW_BREAKPOINT
148	bool
149	depends on PERF_EVENTS
150
151config HAVE_MIXED_BREAKPOINTS_REGS
152	bool
153	depends on HAVE_HW_BREAKPOINT
154	help
155	  Depending on the arch implementation of hardware breakpoints,
156	  some of them have separate registers for data and instruction
157	  breakpoints addresses, others have mixed registers to store
158	  them but define the access type in a control register.
159	  Select this option if your arch implements breakpoints under the
160	  latter fashion.
161
162config HAVE_USER_RETURN_NOTIFIER
163	bool
164
165config HAVE_PERF_EVENTS_NMI
166	bool
167	help
168	  System hardware can generate an NMI using the perf event
169	  subsystem.  Also has support for calculating CPU cycle events
170	  to determine how many clock cycles in a given period.
171
172config HAVE_ARCH_JUMP_LABEL
173	bool
174
175config HAVE_ARCH_MUTEX_CPU_RELAX
176	bool
177
178config HAVE_RCU_TABLE_FREE
179	bool
180
181config ARCH_HAVE_NMI_SAFE_CMPXCHG
182	bool
183
184source "kernel/gcov/Kconfig"
185