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