xref: /openbmc/linux/arch/Kconfig (revision e01292b1)
1fb32e03fSMathieu Desnoyers#
2fb32e03fSMathieu Desnoyers# General architecture dependent options
3fb32e03fSMathieu Desnoyers#
4125e5645SMathieu Desnoyers
5125e5645SMathieu Desnoyersconfig OPROFILE
6125e5645SMathieu Desnoyers	tristate "OProfile system profiling (EXPERIMENTAL)"
7125e5645SMathieu Desnoyers	depends on PROFILING
8125e5645SMathieu Desnoyers	depends on HAVE_OPROFILE
940ada30fSIngo Molnar	depends on TRACING_SUPPORT
10d69d59f4SIngo Molnar	select TRACING
11d69d59f4SIngo Molnar	select RING_BUFFER
129a5963ebSChristian Borntraeger	select RING_BUFFER_ALLOW_SWAP
13125e5645SMathieu Desnoyers	help
14125e5645SMathieu Desnoyers	  OProfile is a profiling system capable of profiling the
15125e5645SMathieu Desnoyers	  whole system, include the kernel, kernel modules, libraries,
16125e5645SMathieu Desnoyers	  and applications.
17125e5645SMathieu Desnoyers
18125e5645SMathieu Desnoyers	  If unsure, say N.
19125e5645SMathieu Desnoyers
20852402ccSRobert Richterconfig OPROFILE_IBS
21852402ccSRobert Richter	bool "OProfile AMD IBS support (EXPERIMENTAL)"
22852402ccSRobert Richter	default n
23852402ccSRobert Richter	depends on OPROFILE && SMP && X86
24852402ccSRobert Richter	help
25852402ccSRobert Richter          Instruction-Based Sampling (IBS) is a new profiling
26852402ccSRobert Richter          technique that provides rich, precise program performance
27852402ccSRobert Richter          information. IBS is introduced by AMD Family10h processors
28ba8b453dSJesper Dangaard Brouer          (AMD Opteron Quad-Core processor "Barcelona") to overcome
29852402ccSRobert Richter          the limitations of conventional performance counter
30852402ccSRobert Richter          sampling.
31852402ccSRobert Richter
32852402ccSRobert Richter	  If unsure, say N.
33852402ccSRobert Richter
344d4036e0SJason Yehconfig OPROFILE_EVENT_MULTIPLEX
354d4036e0SJason Yeh	bool "OProfile multiplexing support (EXPERIMENTAL)"
364d4036e0SJason Yeh	default n
374d4036e0SJason Yeh	depends on OPROFILE && X86
384d4036e0SJason Yeh	help
394d4036e0SJason Yeh	  The number of hardware counters is limited. The multiplexing
404d4036e0SJason Yeh	  feature enables OProfile to gather more events than counters
414d4036e0SJason Yeh	  are provided by the hardware. This is realized by switching
424d4036e0SJason Yeh	  between events at an user specified time interval.
434d4036e0SJason Yeh
444d4036e0SJason Yeh	  If unsure, say N.
454d4036e0SJason Yeh
46125e5645SMathieu Desnoyersconfig HAVE_OPROFILE
479ba16087SJan Beulich	bool
48125e5645SMathieu Desnoyers
49125e5645SMathieu Desnoyersconfig KPROBES
50125e5645SMathieu Desnoyers	bool "Kprobes"
51125e5645SMathieu Desnoyers	depends on KALLSYMS && MODULES
52125e5645SMathieu Desnoyers	depends on HAVE_KPROBES
53125e5645SMathieu Desnoyers	help
54125e5645SMathieu Desnoyers	  Kprobes allows you to trap at almost any kernel address and
55125e5645SMathieu Desnoyers	  execute a callback function.  register_kprobe() establishes
56125e5645SMathieu Desnoyers	  a probepoint and specifies the callback.  Kprobes is useful
57125e5645SMathieu Desnoyers	  for kernel debugging, non-intrusive instrumentation and testing.
58125e5645SMathieu Desnoyers	  If in doubt, say "N".
59125e5645SMathieu Desnoyers
6058340a07SJohannes Bergconfig HAVE_EFFICIENT_UNALIGNED_ACCESS
619ba16087SJan Beulich	bool
6258340a07SJohannes Berg	help
6358340a07SJohannes Berg	  Some architectures are unable to perform unaligned accesses
6458340a07SJohannes Berg	  without the use of get_unaligned/put_unaligned. Others are
6558340a07SJohannes Berg	  unable to perform such accesses efficiently (e.g. trap on
6658340a07SJohannes Berg	  unaligned access and require fixing it up in the exception
6758340a07SJohannes Berg	  handler.)
6858340a07SJohannes Berg
6958340a07SJohannes Berg	  This symbol should be selected by an architecture if it can
7058340a07SJohannes Berg	  perform unaligned accesses efficiently to allow different
7158340a07SJohannes Berg	  code paths to be selected for these cases. Some network
7258340a07SJohannes Berg	  drivers, for example, could opt to not fix up alignment
7358340a07SJohannes Berg	  problems with received packets if doing so would not help
7458340a07SJohannes Berg	  much.
7558340a07SJohannes Berg
7658340a07SJohannes Berg	  See Documentation/unaligned-memory-access.txt for more
7758340a07SJohannes Berg	  information on the topic of unaligned memory accesses.
7858340a07SJohannes Berg
791a94bc34SHeiko Carstensconfig HAVE_SYSCALL_WRAPPERS
801a94bc34SHeiko Carstens	bool
811a94bc34SHeiko Carstens
829edddaa2SAnanth N Mavinakayanahalliconfig KRETPROBES
839edddaa2SAnanth N Mavinakayanahalli	def_bool y
849edddaa2SAnanth N Mavinakayanahalli	depends on KPROBES && HAVE_KRETPROBES
859edddaa2SAnanth N Mavinakayanahalli
867c68af6eSAvi Kivityconfig USER_RETURN_NOTIFIER
877c68af6eSAvi Kivity	bool
887c68af6eSAvi Kivity	depends on HAVE_USER_RETURN_NOTIFIER
897c68af6eSAvi Kivity	help
907c68af6eSAvi Kivity	  Provide a kernel-internal notification when a cpu is about to
917c68af6eSAvi Kivity	  switch to user mode.
927c68af6eSAvi Kivity
9328b2ee20SRik van Rielconfig HAVE_IOREMAP_PROT
949ba16087SJan Beulich	bool
9528b2ee20SRik van Riel
96125e5645SMathieu Desnoyersconfig HAVE_KPROBES
979ba16087SJan Beulich	bool
989edddaa2SAnanth N Mavinakayanahalli
999edddaa2SAnanth N Mavinakayanahalliconfig HAVE_KRETPROBES
1009ba16087SJan Beulich	bool
10174bc7ceeSArthur Kepner
1021f5a4ad9SRoland McGrath#
1031f5a4ad9SRoland McGrath# An arch should select this if it provides all these things:
1041f5a4ad9SRoland McGrath#
1051f5a4ad9SRoland McGrath#	task_pt_regs()		in asm/processor.h or asm/ptrace.h
1061f5a4ad9SRoland McGrath#	arch_has_single_step()	if there is hardware single-step support
1071f5a4ad9SRoland McGrath#	arch_has_block_step()	if there is hardware block-step support
1081f5a4ad9SRoland McGrath#	asm/syscall.h		supplying asm-generic/syscall.h interface
1091f5a4ad9SRoland McGrath#	linux/regset.h		user_regset interfaces
1101f5a4ad9SRoland McGrath#	CORE_DUMP_USE_REGSET	#define'd in linux/elf.h
1111f5a4ad9SRoland McGrath#	TIF_SYSCALL_TRACE	calls tracehook_report_syscall_{entry,exit}
1121f5a4ad9SRoland McGrath#	TIF_NOTIFY_RESUME	calls tracehook_notify_resume()
1131f5a4ad9SRoland McGrath#	signal delivery		calls tracehook_signal_handler()
1141f5a4ad9SRoland McGrath#
1151f5a4ad9SRoland McGrathconfig HAVE_ARCH_TRACEHOOK
1169ba16087SJan Beulich	bool
1171f5a4ad9SRoland McGrath
11874bc7ceeSArthur Kepnerconfig HAVE_DMA_ATTRS
1199ba16087SJan Beulich	bool
1203d442233SJens Axboe
1213d442233SJens Axboeconfig USE_GENERIC_SMP_HELPERS
1229ba16087SJan Beulich	bool
1239483a578SDavid Brownell
124f850c30cSHeiko Carstensconfig HAVE_REGS_AND_STACK_ACCESS_API
125f850c30cSHeiko Carstens	bool
126e01292b1SHeiko Carstens	help
127e01292b1SHeiko Carstens	  This symbol should be selected by an architecure if it supports
128e01292b1SHeiko Carstens	  the API needed to access registers and stack entries from pt_regs,
129e01292b1SHeiko Carstens	  declared in asm/ptrace.h
130e01292b1SHeiko Carstens	  For example the kprobes-based event tracer needs this API.
131f850c30cSHeiko Carstens
1329483a578SDavid Brownellconfig HAVE_CLK
1339ba16087SJan Beulich	bool
1349483a578SDavid Brownell	help
1359483a578SDavid Brownell	  The <linux/clk.h> calls support software clock gating and
1369483a578SDavid Brownell	  thus are a key power management tool on many systems.
1379483a578SDavid Brownell
1385ee00bd4SJoerg Roedelconfig HAVE_DMA_API_DEBUG
1395ee00bd4SJoerg Roedel	bool
14036cd3c9fSHeiko Carstens
14136cd3c9fSHeiko Carstensconfig HAVE_DEFAULT_NO_SPIN_MUTEXES
14236cd3c9fSHeiko Carstens	bool
14362a038d3SK.Prasad
14462a038d3SK.Prasadconfig HAVE_HW_BREAKPOINT
14562a038d3SK.Prasad	bool
14699e8c5a3SFrederic Weisbecker	depends on PERF_EVENTS
14762a038d3SK.Prasad
1487c68af6eSAvi Kivityconfig HAVE_USER_RETURN_NOTIFIER
1497c68af6eSAvi Kivity	bool
150a1922ed6SIngo Molnar
1512521f2c2SPeter Oberparleitersource "kernel/gcov/Kconfig"
152