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 12125e5645SMathieu Desnoyers help 13125e5645SMathieu Desnoyers OProfile is a profiling system capable of profiling the 14125e5645SMathieu Desnoyers whole system, include the kernel, kernel modules, libraries, 15125e5645SMathieu Desnoyers and applications. 16125e5645SMathieu Desnoyers 17125e5645SMathieu Desnoyers If unsure, say N. 18125e5645SMathieu Desnoyers 19852402ccSRobert Richterconfig OPROFILE_IBS 20852402ccSRobert Richter bool "OProfile AMD IBS support (EXPERIMENTAL)" 21852402ccSRobert Richter default n 22852402ccSRobert Richter depends on OPROFILE && SMP && X86 23852402ccSRobert Richter help 24852402ccSRobert Richter Instruction-Based Sampling (IBS) is a new profiling 25852402ccSRobert Richter technique that provides rich, precise program performance 26852402ccSRobert Richter information. IBS is introduced by AMD Family10h processors 27ba8b453dSJesper Dangaard Brouer (AMD Opteron Quad-Core processor "Barcelona") to overcome 28852402ccSRobert Richter the limitations of conventional performance counter 29852402ccSRobert Richter sampling. 30852402ccSRobert Richter 31852402ccSRobert Richter If unsure, say N. 32852402ccSRobert Richter 33*4d4036e0SJason Yehconfig OPROFILE_EVENT_MULTIPLEX 34*4d4036e0SJason Yeh bool "OProfile multiplexing support (EXPERIMENTAL)" 35*4d4036e0SJason Yeh default n 36*4d4036e0SJason Yeh depends on OPROFILE && X86 37*4d4036e0SJason Yeh help 38*4d4036e0SJason Yeh The number of hardware counters is limited. The multiplexing 39*4d4036e0SJason Yeh feature enables OProfile to gather more events than counters 40*4d4036e0SJason Yeh are provided by the hardware. This is realized by switching 41*4d4036e0SJason Yeh between events at an user specified time interval. 42*4d4036e0SJason Yeh 43*4d4036e0SJason Yeh If unsure, say N. 44*4d4036e0SJason Yeh 45125e5645SMathieu Desnoyersconfig HAVE_OPROFILE 469ba16087SJan Beulich bool 47125e5645SMathieu Desnoyers 48125e5645SMathieu Desnoyersconfig KPROBES 49125e5645SMathieu Desnoyers bool "Kprobes" 50125e5645SMathieu Desnoyers depends on KALLSYMS && MODULES 51125e5645SMathieu Desnoyers depends on HAVE_KPROBES 52125e5645SMathieu Desnoyers help 53125e5645SMathieu Desnoyers Kprobes allows you to trap at almost any kernel address and 54125e5645SMathieu Desnoyers execute a callback function. register_kprobe() establishes 55125e5645SMathieu Desnoyers a probepoint and specifies the callback. Kprobes is useful 56125e5645SMathieu Desnoyers for kernel debugging, non-intrusive instrumentation and testing. 57125e5645SMathieu Desnoyers If in doubt, say "N". 58125e5645SMathieu Desnoyers 5958340a07SJohannes Bergconfig HAVE_EFFICIENT_UNALIGNED_ACCESS 609ba16087SJan Beulich bool 6158340a07SJohannes Berg help 6258340a07SJohannes Berg Some architectures are unable to perform unaligned accesses 6358340a07SJohannes Berg without the use of get_unaligned/put_unaligned. Others are 6458340a07SJohannes Berg unable to perform such accesses efficiently (e.g. trap on 6558340a07SJohannes Berg unaligned access and require fixing it up in the exception 6658340a07SJohannes Berg handler.) 6758340a07SJohannes Berg 6858340a07SJohannes Berg This symbol should be selected by an architecture if it can 6958340a07SJohannes Berg perform unaligned accesses efficiently to allow different 7058340a07SJohannes Berg code paths to be selected for these cases. Some network 7158340a07SJohannes Berg drivers, for example, could opt to not fix up alignment 7258340a07SJohannes Berg problems with received packets if doing so would not help 7358340a07SJohannes Berg much. 7458340a07SJohannes Berg 7558340a07SJohannes Berg See Documentation/unaligned-memory-access.txt for more 7658340a07SJohannes Berg information on the topic of unaligned memory accesses. 7758340a07SJohannes Berg 781a94bc34SHeiko Carstensconfig HAVE_SYSCALL_WRAPPERS 791a94bc34SHeiko Carstens bool 801a94bc34SHeiko Carstens 819edddaa2SAnanth N Mavinakayanahalliconfig KRETPROBES 829edddaa2SAnanth N Mavinakayanahalli def_bool y 839edddaa2SAnanth N Mavinakayanahalli depends on KPROBES && HAVE_KRETPROBES 849edddaa2SAnanth N Mavinakayanahalli 8528b2ee20SRik van Rielconfig HAVE_IOREMAP_PROT 869ba16087SJan Beulich bool 8728b2ee20SRik van Riel 88125e5645SMathieu Desnoyersconfig HAVE_KPROBES 899ba16087SJan Beulich bool 909edddaa2SAnanth N Mavinakayanahalli 919edddaa2SAnanth N Mavinakayanahalliconfig HAVE_KRETPROBES 929ba16087SJan Beulich bool 9374bc7ceeSArthur Kepner 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 1169483a578SDavid Brownellconfig HAVE_CLK 1179ba16087SJan Beulich bool 1189483a578SDavid Brownell help 1199483a578SDavid Brownell The <linux/clk.h> calls support software clock gating and 1209483a578SDavid Brownell thus are a key power management tool on many systems. 1219483a578SDavid Brownell 1225ee00bd4SJoerg Roedelconfig HAVE_DMA_API_DEBUG 1235ee00bd4SJoerg Roedel bool 12436cd3c9fSHeiko Carstens 12536cd3c9fSHeiko Carstensconfig HAVE_DEFAULT_NO_SPIN_MUTEXES 12636cd3c9fSHeiko Carstens bool 1272521f2c2SPeter Oberparleiter 1282521f2c2SPeter Oberparleitersource "kernel/gcov/Kconfig" 129