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 455cc718b9SMasami Hiramatsu def_bool y 465cc718b9SMasami Hiramatsu depends on KPROBES && HAVE_OPTPROBES 47afd66255SMasami Hiramatsu depends on !PREEMPT 48afd66255SMasami Hiramatsu select KALLSYMS_ALL 49afd66255SMasami Hiramatsu 5058340a07SJohannes Bergconfig HAVE_EFFICIENT_UNALIGNED_ACCESS 519ba16087SJan Beulich bool 5258340a07SJohannes Berg help 5358340a07SJohannes Berg Some architectures are unable to perform unaligned accesses 5458340a07SJohannes Berg without the use of get_unaligned/put_unaligned. Others are 5558340a07SJohannes Berg unable to perform such accesses efficiently (e.g. trap on 5658340a07SJohannes Berg unaligned access and require fixing it up in the exception 5758340a07SJohannes Berg handler.) 5858340a07SJohannes Berg 5958340a07SJohannes Berg This symbol should be selected by an architecture if it can 6058340a07SJohannes Berg perform unaligned accesses efficiently to allow different 6158340a07SJohannes Berg code paths to be selected for these cases. Some network 6258340a07SJohannes Berg drivers, for example, could opt to not fix up alignment 6358340a07SJohannes Berg problems with received packets if doing so would not help 6458340a07SJohannes Berg much. 6558340a07SJohannes Berg 6658340a07SJohannes Berg See Documentation/unaligned-memory-access.txt for more 6758340a07SJohannes Berg information on the topic of unaligned memory accesses. 6858340a07SJohannes Berg 691a94bc34SHeiko Carstensconfig HAVE_SYSCALL_WRAPPERS 701a94bc34SHeiko Carstens bool 711a94bc34SHeiko Carstens 729edddaa2SAnanth N Mavinakayanahalliconfig KRETPROBES 739edddaa2SAnanth N Mavinakayanahalli def_bool y 749edddaa2SAnanth N Mavinakayanahalli depends on KPROBES && HAVE_KRETPROBES 759edddaa2SAnanth N Mavinakayanahalli 767c68af6eSAvi Kivityconfig USER_RETURN_NOTIFIER 777c68af6eSAvi Kivity bool 787c68af6eSAvi Kivity depends on HAVE_USER_RETURN_NOTIFIER 797c68af6eSAvi Kivity help 807c68af6eSAvi Kivity Provide a kernel-internal notification when a cpu is about to 817c68af6eSAvi Kivity switch to user mode. 827c68af6eSAvi Kivity 8328b2ee20SRik van Rielconfig HAVE_IOREMAP_PROT 849ba16087SJan Beulich bool 8528b2ee20SRik van Riel 86125e5645SMathieu Desnoyersconfig HAVE_KPROBES 879ba16087SJan Beulich bool 889edddaa2SAnanth N Mavinakayanahalli 899edddaa2SAnanth N Mavinakayanahalliconfig HAVE_KRETPROBES 909ba16087SJan Beulich bool 9174bc7ceeSArthur Kepner 92afd66255SMasami Hiramatsuconfig HAVE_OPTPROBES 93afd66255SMasami Hiramatsu bool 941f5a4ad9SRoland McGrath# 951f5a4ad9SRoland McGrath# An arch should select this if it provides all these things: 961f5a4ad9SRoland McGrath# 971f5a4ad9SRoland McGrath# task_pt_regs() in asm/processor.h or asm/ptrace.h 981f5a4ad9SRoland McGrath# arch_has_single_step() if there is hardware single-step support 991f5a4ad9SRoland McGrath# arch_has_block_step() if there is hardware block-step support 1001f5a4ad9SRoland McGrath# asm/syscall.h supplying asm-generic/syscall.h interface 1011f5a4ad9SRoland McGrath# linux/regset.h user_regset interfaces 1021f5a4ad9SRoland McGrath# CORE_DUMP_USE_REGSET #define'd in linux/elf.h 1031f5a4ad9SRoland McGrath# TIF_SYSCALL_TRACE calls tracehook_report_syscall_{entry,exit} 1041f5a4ad9SRoland McGrath# TIF_NOTIFY_RESUME calls tracehook_notify_resume() 1051f5a4ad9SRoland McGrath# signal delivery calls tracehook_signal_handler() 1061f5a4ad9SRoland McGrath# 1071f5a4ad9SRoland McGrathconfig HAVE_ARCH_TRACEHOOK 1089ba16087SJan Beulich bool 1091f5a4ad9SRoland McGrath 11074bc7ceeSArthur Kepnerconfig HAVE_DMA_ATTRS 1119ba16087SJan Beulich bool 1123d442233SJens Axboe 1133d442233SJens Axboeconfig USE_GENERIC_SMP_HELPERS 1149ba16087SJan Beulich bool 1159483a578SDavid Brownell 116f850c30cSHeiko Carstensconfig HAVE_REGS_AND_STACK_ACCESS_API 117f850c30cSHeiko Carstens bool 118e01292b1SHeiko Carstens help 119e01292b1SHeiko Carstens This symbol should be selected by an architecure if it supports 120e01292b1SHeiko Carstens the API needed to access registers and stack entries from pt_regs, 121e01292b1SHeiko Carstens declared in asm/ptrace.h 122e01292b1SHeiko Carstens For example the kprobes-based event tracer needs this API. 123f850c30cSHeiko Carstens 1249483a578SDavid Brownellconfig HAVE_CLK 1259ba16087SJan Beulich bool 1269483a578SDavid Brownell help 1279483a578SDavid Brownell The <linux/clk.h> calls support software clock gating and 1289483a578SDavid Brownell thus are a key power management tool on many systems. 1299483a578SDavid Brownell 1305ee00bd4SJoerg Roedelconfig HAVE_DMA_API_DEBUG 1315ee00bd4SJoerg Roedel bool 13236cd3c9fSHeiko Carstens 13336cd3c9fSHeiko Carstensconfig HAVE_DEFAULT_NO_SPIN_MUTEXES 13436cd3c9fSHeiko Carstens bool 13562a038d3SK.Prasad 13662a038d3SK.Prasadconfig HAVE_HW_BREAKPOINT 13762a038d3SK.Prasad bool 13899e8c5a3SFrederic Weisbecker depends on PERF_EVENTS 13962a038d3SK.Prasad 1407c68af6eSAvi Kivityconfig HAVE_USER_RETURN_NOTIFIER 1417c68af6eSAvi Kivity bool 142a1922ed6SIngo Molnar 1432521f2c2SPeter Oberparleitersource "kernel/gcov/Kconfig" 144