Root/arch/Kconfig

Source at commit 694c7fbe86b8a9c91392e505afcb9fcfc91deccc created 13 years 13 days ago.
By Maarten ter Huurne, MIPS: JZ4740: Add cpufreq support
1#
2# General architecture dependent options
3#
4
5config OPROFILE
6    tristate "OProfile system profiling"
7    depends on PROFILING
8    depends on HAVE_OPROFILE
9    select RING_BUFFER
10    select RING_BUFFER_ALLOW_SWAP
11    help
12      OProfile is a profiling system capable of profiling the
13      whole system, include the kernel, kernel modules, libraries,
14      and applications.
15
16      If unsure, say N.
17
18config OPROFILE_EVENT_MULTIPLEX
19    bool "OProfile multiplexing support (EXPERIMENTAL)"
20    default n
21    depends on OPROFILE && X86
22    help
23      The number of hardware counters is limited. The multiplexing
24      feature enables OProfile to gather more events than counters
25      are provided by the hardware. This is realized by switching
26      between events at an user specified time interval.
27
28      If unsure, say N.
29
30config HAVE_OPROFILE
31    bool
32
33config OPROFILE_NMI_TIMER
34    def_bool y
35    depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
36
37config KPROBES
38    bool "Kprobes"
39    depends on MODULES
40    depends on HAVE_KPROBES
41    select KALLSYMS
42    help
43      Kprobes allows you to trap at almost any kernel address and
44      execute a callback function. register_kprobe() establishes
45      a probepoint and specifies the callback. Kprobes is useful
46      for kernel debugging, non-intrusive instrumentation and testing.
47      If in doubt, say "N".
48
49config JUMP_LABEL
50       bool "Optimize very unlikely/likely branches"
51       depends on HAVE_ARCH_JUMP_LABEL
52       help
53         This option enables a transparent branch optimization that
54     makes certain almost-always-true or almost-always-false branch
55     conditions even cheaper to execute within the kernel.
56
57     Certain performance-sensitive kernel code, such as trace points,
58     scheduler functionality, networking code and KVM have such
59     branches and include support for this optimization technique.
60
61         If it is detected that the compiler has support for "asm goto",
62     the kernel will compile such branches with just a nop
63     instruction. When the condition flag is toggled to true, the
64     nop will be converted to a jump instruction to execute the
65     conditional block of instructions.
66
67     This technique lowers overhead and stress on the branch prediction
68     of the processor and generally makes the kernel faster. The update
69     of the condition is slower, but those are always very rare.
70
71     ( On 32-bit x86, the necessary options added to the compiler
72       flags may increase the size of the kernel slightly. )
73
74config OPTPROBES
75    def_bool y
76    depends on KPROBES && HAVE_OPTPROBES
77    depends on !PREEMPT
78
79config KPROBES_ON_FTRACE
80    def_bool y
81    depends on KPROBES && HAVE_KPROBES_ON_FTRACE
82    depends on DYNAMIC_FTRACE_WITH_REGS
83    help
84     If function tracer is enabled and the arch supports full
85     passing of pt_regs to function tracing, then kprobes can
86     optimize on top of function tracing.
87
88config UPROBES
89    bool "Transparent user-space probes (EXPERIMENTAL)"
90    depends on UPROBE_EVENT && PERF_EVENTS
91    default n
92    select PERCPU_RWSEM
93    help
94      Uprobes is the user-space counterpart to kprobes: they
95      enable instrumentation applications (such as 'perf probe')
96      to establish unintrusive probes in user-space binaries and
97      libraries, by executing handler functions when the probes
98      are hit by user-space applications.
99
100      ( These probes come in the form of single-byte breakpoints,
101        managed by the kernel and kept transparent to the probed
102        application. )
103
104      If in doubt, say "N".
105
106config HAVE_64BIT_ALIGNED_ACCESS
107    def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
108    help
109      Some architectures require 64 bit accesses to be 64 bit
110      aligned, which also requires structs containing 64 bit values
111      to be 64 bit aligned too. This includes some 32 bit
112      architectures which can do 64 bit accesses, as well as 64 bit
113      architectures without unaligned access.
114
115      This symbol should be selected by an architecture if 64 bit
116      accesses are required to be 64 bit aligned in this way even
117      though it is not a 64 bit architecture.
118
119      See Documentation/unaligned-memory-access.txt for more
120      information on the topic of unaligned memory accesses.
121
122config HAVE_EFFICIENT_UNALIGNED_ACCESS
123    bool
124    help
125      Some architectures are unable to perform unaligned accesses
126      without the use of get_unaligned/put_unaligned. Others are
127      unable to perform such accesses efficiently (e.g. trap on
128      unaligned access and require fixing it up in the exception
129      handler.)
130
131      This symbol should be selected by an architecture if it can
132      perform unaligned accesses efficiently to allow different
133      code paths to be selected for these cases. Some network
134      drivers, for example, could opt to not fix up alignment
135      problems with received packets if doing so would not help
136      much.
137
138      See Documentation/unaligned-memory-access.txt for more
139      information on the topic of unaligned memory accesses.
140
141config ARCH_USE_BUILTIN_BSWAP
142       bool
143       help
144     Modern versions of GCC (since 4.4) have builtin functions
145     for handling byte-swapping. Using these, instead of the old
146     inline assembler that the architecture code provides in the
147     __arch_bswapXX() macros, allows the compiler to see what's
148     happening and offers more opportunity for optimisation. In
149     particular, the compiler will be able to combine the byteswap
150     with a nearby load or store and use load-and-swap or
151     store-and-swap instructions if the architecture has them. It
152     should almost *never* result in code which is worse than the
153     hand-coded assembler in <asm/swab.h>. But just in case it
154     does, the use of the builtins is optional.
155
156     Any architecture with load-and-swap or store-and-swap
157     instructions should set this. And it shouldn't hurt to set it
158     on architectures that don't have such instructions.
159
160config KRETPROBES
161    def_bool y
162    depends on KPROBES && HAVE_KRETPROBES
163
164config USER_RETURN_NOTIFIER
165    bool
166    depends on HAVE_USER_RETURN_NOTIFIER
167    help
168      Provide a kernel-internal notification when a cpu is about to
169      switch to user mode.
170
171config HAVE_IOREMAP_PROT
172    bool
173
174config HAVE_KPROBES
175    bool
176
177config HAVE_KRETPROBES
178    bool
179
180config HAVE_OPTPROBES
181    bool
182
183config HAVE_KPROBES_ON_FTRACE
184    bool
185
186config HAVE_NMI_WATCHDOG
187    bool
188#
189# An arch should select this if it provides all these things:
190#
191# task_pt_regs() in asm/processor.h or asm/ptrace.h
192# arch_has_single_step() if there is hardware single-step support
193# arch_has_block_step() if there is hardware block-step support
194# asm/syscall.h supplying asm-generic/syscall.h interface
195# linux/regset.h user_regset interfaces
196# CORE_DUMP_USE_REGSET #define'd in linux/elf.h
197# TIF_SYSCALL_TRACE calls tracehook_report_syscall_{entry,exit}
198# TIF_NOTIFY_RESUME calls tracehook_notify_resume()
199# signal delivery calls tracehook_signal_handler()
200#
201config HAVE_ARCH_TRACEHOOK
202    bool
203
204config HAVE_DMA_ATTRS
205    bool
206
207config HAVE_DMA_CONTIGUOUS
208    bool
209
210config GENERIC_SMP_IDLE_THREAD
211       bool
212
213config GENERIC_IDLE_POLL_SETUP
214       bool
215
216# Select if arch init_task initializer is different to init/init_task.c
217config ARCH_INIT_TASK
218       bool
219
220# Select if arch has its private alloc_task_struct() function
221config ARCH_TASK_STRUCT_ALLOCATOR
222    bool
223
224# Select if arch has its private alloc_thread_info() function
225config ARCH_THREAD_INFO_ALLOCATOR
226    bool
227
228config HAVE_REGS_AND_STACK_ACCESS_API
229    bool
230    help
231      This symbol should be selected by an architecure if it supports
232      the API needed to access registers and stack entries from pt_regs,
233      declared in asm/ptrace.h
234      For example the kprobes-based event tracer needs this API.
235
236config HAVE_CLK
237    bool
238    help
239      The <linux/clk.h> calls support software clock gating and
240      thus are a key power management tool on many systems.
241
242config HAVE_DMA_API_DEBUG
243    bool
244
245config HAVE_HW_BREAKPOINT
246    bool
247    depends on PERF_EVENTS
248
249config HAVE_MIXED_BREAKPOINTS_REGS
250    bool
251    depends on HAVE_HW_BREAKPOINT
252    help
253      Depending on the arch implementation of hardware breakpoints,
254      some of them have separate registers for data and instruction
255      breakpoints addresses, others have mixed registers to store
256      them but define the access type in a control register.
257      Select this option if your arch implements breakpoints under the
258      latter fashion.
259
260config HAVE_USER_RETURN_NOTIFIER
261    bool
262
263config HAVE_PERF_EVENTS_NMI
264    bool
265    help
266      System hardware can generate an NMI using the perf event
267      subsystem. Also has support for calculating CPU cycle events
268      to determine how many clock cycles in a given period.
269
270config HAVE_PERF_REGS
271    bool
272    help
273      Support selective register dumps for perf events. This includes
274      bit-mapping of each registers and a unique architecture id.
275
276config HAVE_PERF_USER_STACK_DUMP
277    bool
278    help
279      Support user stack dumps for perf event samples. This needs
280      access to the user stack pointer which is not unified across
281      architectures.
282
283config HAVE_ARCH_JUMP_LABEL
284    bool
285
286config HAVE_RCU_TABLE_FREE
287    bool
288
289config ARCH_HAVE_NMI_SAFE_CMPXCHG
290    bool
291
292config HAVE_ALIGNED_STRUCT_PAGE
293    bool
294    help
295      This makes sure that struct pages are double word aligned and that
296      e.g. the SLUB allocator can perform double word atomic operations
297      on a struct page for better performance. However selecting this
298      might increase the size of a struct page by a word.
299
300config HAVE_CMPXCHG_LOCAL
301    bool
302
303config HAVE_CMPXCHG_DOUBLE
304    bool
305
306config ARCH_WANT_IPC_PARSE_VERSION
307    bool
308
309config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
310    bool
311
312config ARCH_WANT_OLD_COMPAT_IPC
313    select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
314    bool
315
316config HAVE_ARCH_SECCOMP_FILTER
317    bool
318    help
319      An arch should select this symbol if it provides all of these things:
320      - syscall_get_arch()
321      - syscall_get_arguments()
322      - syscall_rollback()
323      - syscall_set_return_value()
324      - SIGSYS siginfo_t support
325      - secure_computing is called from a ptrace_event()-safe context
326      - secure_computing return value is checked and a return value of -1
327        results in the system call being skipped immediately.
328
329config SECCOMP_FILTER
330    def_bool y
331    depends on HAVE_ARCH_SECCOMP_FILTER && SECCOMP && NET
332    help
333      Enable tasks to build secure computing environments defined
334      in terms of Berkeley Packet Filter programs which implement
335      task-defined system call filtering polices.
336
337      See Documentation/prctl/seccomp_filter.txt for details.
338
339config HAVE_CONTEXT_TRACKING
340    bool
341    help
342      Provide kernel/user boundaries probes necessary for subsystems
343      that need it, such as userspace RCU extended quiescent state.
344      Syscalls need to be wrapped inside user_exit()-user_enter() through
345      the slow path using TIF_NOHZ flag. Exceptions handlers must be
346      wrapped as well. Irqs are already protected inside
347      rcu_irq_enter/rcu_irq_exit() but preemption or signal handling on
348      irq exit still need to be protected.
349
350config HAVE_VIRT_CPU_ACCOUNTING
351    bool
352
353config HAVE_VIRT_CPU_ACCOUNTING_GEN
354    bool
355    default y if 64BIT
356    help
357      With VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit.
358      Before enabling this option, arch code must be audited
359      to ensure there are no races in concurrent read/write of
360      cputime_t. For example, reading/writing 64-bit cputime_t on
361      some 32-bit arches may require multiple accesses, so proper
362      locking is needed to protect against concurrent accesses.
363
364
365config HAVE_IRQ_TIME_ACCOUNTING
366    bool
367    help
368      Archs need to ensure they use a high enough resolution clock to
369      support irq time accounting and then call enable_sched_clock_irqtime().
370
371config HAVE_ARCH_TRANSPARENT_HUGEPAGE
372    bool
373
374config HAVE_ARCH_SOFT_DIRTY
375    bool
376
377config HAVE_MOD_ARCH_SPECIFIC
378    bool
379    help
380      The arch uses struct mod_arch_specific to store data. Many arches
381      just need a simple module loader without arch specific data - those
382      should not enable this.
383
384config MODULES_USE_ELF_RELA
385    bool
386    help
387      Modules only use ELF RELA relocations. Modules with ELF REL
388      relocations will give an error.
389
390config MODULES_USE_ELF_REL
391    bool
392    help
393      Modules only use ELF REL relocations. Modules with ELF RELA
394      relocations will give an error.
395
396config HAVE_UNDERSCORE_SYMBOL_PREFIX
397    bool
398    help
399      Some architectures generate an _ in front of C symbols; things like
400      module loading and assembly files need to know about this.
401
402config HAVE_IRQ_EXIT_ON_IRQ_STACK
403    bool
404    help
405      Architecture doesn't only execute the irq handler on the irq stack
406      but also irq_exit(). This way we can process softirqs on this irq
407      stack instead of switching to a new one when we call __do_softirq()
408      in the end of an hardirq.
409      This spares a stack switch and improves cache usage on softirq
410      processing.
411
412#
413# ABI hall of shame
414#
415config CLONE_BACKWARDS
416    bool
417    help
418      Architecture has tls passed as the 4th argument of clone(2),
419      not the 5th one.
420
421config CLONE_BACKWARDS2
422    bool
423    help
424      Architecture has the first two arguments of clone(2) swapped.
425
426config CLONE_BACKWARDS3
427    bool
428    help
429      Architecture has tls passed as the 3rd argument of clone(2),
430      not the 5th one.
431
432config ODD_RT_SIGACTION
433    bool
434    help
435      Architecture has unusual rt_sigaction(2) arguments
436
437config OLD_SIGSUSPEND
438    bool
439    help
440      Architecture has old sigsuspend(2) syscall, of one-argument variety
441
442config OLD_SIGSUSPEND3
443    bool
444    help
445      Even weirder antique ABI - three-argument sigsuspend(2)
446
447config OLD_SIGACTION
448    bool
449    help
450      Architecture has old sigaction(2) syscall. Nope, not the same
451      as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
452      but fairly different variant of sigaction(2), thanks to OSF/1
453      compatibility...
454
455config COMPAT_OLD_SIGACTION
456    bool
457
458source "kernel/gcov/Kconfig"
459

Archive Download this file



interactive