1fb32e03fSMathieu Desnoyers# 2fb32e03fSMathieu Desnoyers# General architecture dependent options 3fb32e03fSMathieu Desnoyers# 4125e5645SMathieu Desnoyers 5125e5645SMathieu Desnoyersconfig OPROFILE 6b309a294SRobert Richter tristate "OProfile system profiling" 7125e5645SMathieu Desnoyers depends on PROFILING 8125e5645SMathieu Desnoyers depends on HAVE_OPROFILE 9d69d59f4SIngo Molnar select RING_BUFFER 109a5963ebSChristian Borntraeger select RING_BUFFER_ALLOW_SWAP 11125e5645SMathieu Desnoyers help 12125e5645SMathieu Desnoyers OProfile is a profiling system capable of profiling the 13125e5645SMathieu Desnoyers whole system, include the kernel, kernel modules, libraries, 14125e5645SMathieu Desnoyers and applications. 15125e5645SMathieu Desnoyers 16125e5645SMathieu Desnoyers If unsure, say N. 17125e5645SMathieu Desnoyers 184d4036e0SJason Yehconfig OPROFILE_EVENT_MULTIPLEX 194d4036e0SJason Yeh bool "OProfile multiplexing support (EXPERIMENTAL)" 204d4036e0SJason Yeh default n 214d4036e0SJason Yeh depends on OPROFILE && X86 224d4036e0SJason Yeh help 234d4036e0SJason Yeh The number of hardware counters is limited. The multiplexing 244d4036e0SJason Yeh feature enables OProfile to gather more events than counters 254d4036e0SJason Yeh are provided by the hardware. This is realized by switching 264d4036e0SJason Yeh between events at an user specified time interval. 274d4036e0SJason Yeh 284d4036e0SJason Yeh If unsure, say N. 294d4036e0SJason Yeh 30125e5645SMathieu Desnoyersconfig HAVE_OPROFILE 319ba16087SJan Beulich bool 32125e5645SMathieu Desnoyers 33125e5645SMathieu Desnoyersconfig KPROBES 34125e5645SMathieu Desnoyers bool "Kprobes" 35125e5645SMathieu Desnoyers depends on KALLSYMS && MODULES 36125e5645SMathieu Desnoyers depends on HAVE_KPROBES 37125e5645SMathieu Desnoyers help 38125e5645SMathieu Desnoyers Kprobes allows you to trap at almost any kernel address and 39125e5645SMathieu Desnoyers execute a callback function. register_kprobe() establishes 40125e5645SMathieu Desnoyers a probepoint and specifies the callback. Kprobes is useful 41125e5645SMathieu Desnoyers for kernel debugging, non-intrusive instrumentation and testing. 42125e5645SMathieu Desnoyers If in doubt, say "N". 43125e5645SMathieu Desnoyers 44afd66255SMasami Hiramatsuconfig OPTPROBES 45afd66255SMasami Hiramatsu bool "Kprobes jump optimization support (EXPERIMENTAL)" 46afd66255SMasami Hiramatsu default y 47afd66255SMasami Hiramatsu depends on KPROBES 48afd66255SMasami Hiramatsu depends on !PREEMPT 49afd66255SMasami Hiramatsu depends on HAVE_OPTPROBES 50afd66255SMasami Hiramatsu select KALLSYMS_ALL 51afd66255SMasami Hiramatsu help 52afd66255SMasami Hiramatsu This option will allow kprobes to optimize breakpoint to 53afd66255SMasami Hiramatsu a jump for reducing its overhead. 54afd66255SMasami Hiramatsu 5558340a07SJohannes Bergconfig HAVE_EFFICIENT_UNALIGNED_ACCESS 569ba16087SJan Beulich bool 5758340a07SJohannes Berg help 5858340a07SJohannes Berg Some architectures are unable to perform unaligned accesses 5958340a07SJohannes Berg without the use of get_unaligned/put_unaligned. Others are 6058340a07SJohannes Berg unable to perform such accesses efficiently (e.g. trap on 6158340a07SJohannes Berg unaligned access and require fixing it up in the exception 6258340a07SJohannes Berg handler.) 6358340a07SJohannes Berg 6458340a07SJohannes Berg This symbol should be selected by an architecture if it can 6558340a07SJohannes Berg perform unaligned accesses efficiently to allow different 6658340a07SJohannes Berg code paths to be selected for these cases. Some network 6758340a07SJohannes Berg drivers, for example, could opt to not fix up alignment 6858340a07SJohannes Berg problems with received packets if doing so would not help 6958340a07SJohannes Berg much. 7058340a07SJohannes Berg 7158340a07SJohannes Berg See Documentation/unaligned-memory-access.txt for more 7258340a07SJohannes Berg information on the topic of unaligned memory accesses. 7358340a07SJohannes Berg 741a94bc34SHeiko Carstensconfig HAVE_SYSCALL_WRAPPERS 751a94bc34SHeiko Carstens bool 761a94bc34SHeiko Carstens 779edddaa2SAnanth N Mavinakayanahalliconfig KRETPROBES 789edddaa2SAnanth N Mavinakayanahalli def_bool y 799edddaa2SAnanth N Mavinakayanahalli depends on KPROBES && HAVE_KRETPROBES 809edddaa2SAnanth N Mavinakayanahalli 817c68af6eSAvi Kivityconfig USER_RETURN_NOTIFIER 827c68af6eSAvi Kivity bool 837c68af6eSAvi Kivity depends on HAVE_USER_RETURN_NOTIFIER 847c68af6eSAvi Kivity help 857c68af6eSAvi Kivity Provide a kernel-internal notification when a cpu is about to 867c68af6eSAvi Kivity switch to user mode. 877c68af6eSAvi Kivity 8828b2ee20SRik van Rielconfig HAVE_IOREMAP_PROT 899ba16087SJan Beulich bool 9028b2ee20SRik van Riel 91125e5645SMathieu Desnoyersconfig HAVE_KPROBES 929ba16087SJan Beulich bool 939edddaa2SAnanth N Mavinakayanahalli 949edddaa2SAnanth N Mavinakayanahalliconfig HAVE_KRETPROBES 959ba16087SJan Beulich bool 9674bc7ceeSArthur Kepner 97afd66255SMasami Hiramatsuconfig HAVE_OPTPROBES 98afd66255SMasami Hiramatsu bool 991f5a4ad9SRoland McGrath# 1001f5a4ad9SRoland McGrath# An arch should select this if it provides all these things: 1011f5a4ad9SRoland McGrath# 1021f5a4ad9SRoland McGrath# task_pt_regs() in asm/processor.h or asm/ptrace.h 1031f5a4ad9SRoland McGrath# arch_has_single_step() if there is hardware single-step support 1041f5a4ad9SRoland McGrath# arch_has_block_step() if there is hardware block-step support 1051f5a4ad9SRoland McGrath# asm/syscall.h supplying asm-generic/syscall.h interface 1061f5a4ad9SRoland McGrath# linux/regset.h user_regset interfaces 1071f5a4ad9SRoland McGrath# CORE_DUMP_USE_REGSET #define'd in linux/elf.h 1081f5a4ad9SRoland McGrath# TIF_SYSCALL_TRACE calls tracehook_report_syscall_{entry,exit} 1091f5a4ad9SRoland McGrath# TIF_NOTIFY_RESUME calls tracehook_notify_resume() 1101f5a4ad9SRoland McGrath# signal delivery calls tracehook_signal_handler() 1111f5a4ad9SRoland McGrath# 1121f5a4ad9SRoland McGrathconfig HAVE_ARCH_TRACEHOOK 1139ba16087SJan Beulich bool 1141f5a4ad9SRoland McGrath 11574bc7ceeSArthur Kepnerconfig HAVE_DMA_ATTRS 1169ba16087SJan Beulich bool 1173d442233SJens Axboe 1183d442233SJens Axboeconfig USE_GENERIC_SMP_HELPERS 1199ba16087SJan Beulich bool 1209483a578SDavid Brownell 121f850c30cSHeiko Carstensconfig HAVE_REGS_AND_STACK_ACCESS_API 122f850c30cSHeiko Carstens bool 123e01292b1SHeiko Carstens help 124e01292b1SHeiko Carstens This symbol should be selected by an architecure if it supports 125e01292b1SHeiko Carstens the API needed to access registers and stack entries from pt_regs, 126e01292b1SHeiko Carstens declared in asm/ptrace.h 127e01292b1SHeiko Carstens For example the kprobes-based event tracer needs this API. 128f850c30cSHeiko Carstens 1299483a578SDavid Brownellconfig HAVE_CLK 1309ba16087SJan Beulich bool 1319483a578SDavid Brownell help 1329483a578SDavid Brownell The <linux/clk.h> calls support software clock gating and 1339483a578SDavid Brownell thus are a key power management tool on many systems. 1349483a578SDavid Brownell 1355ee00bd4SJoerg Roedelconfig HAVE_DMA_API_DEBUG 1365ee00bd4SJoerg Roedel bool 13736cd3c9fSHeiko Carstens 13836cd3c9fSHeiko Carstensconfig HAVE_DEFAULT_NO_SPIN_MUTEXES 13936cd3c9fSHeiko Carstens bool 14062a038d3SK.Prasad 14162a038d3SK.Prasadconfig HAVE_HW_BREAKPOINT 14262a038d3SK.Prasad bool 14399e8c5a3SFrederic Weisbecker depends on PERF_EVENTS 14462a038d3SK.Prasad 1457c68af6eSAvi Kivityconfig HAVE_USER_RETURN_NOTIFIER 1467c68af6eSAvi Kivity bool 147a1922ed6SIngo Molnar 148c01d4323SFrederic Weisbeckerconfig HAVE_PERF_EVENTS_NMI 149c01d4323SFrederic Weisbecker bool 150*23637d47SFrederic Weisbecker help 151*23637d47SFrederic Weisbecker System hardware can generate an NMI using the perf event 152*23637d47SFrederic Weisbecker subsystem. Also has support for calculating CPU cycle events 153*23637d47SFrederic Weisbecker to determine how many clock cycles in a given period. 154c01d4323SFrederic Weisbecker 1552521f2c2SPeter Oberparleitersource "kernel/gcov/Kconfig" 156