]> nv-tegra.nvidia Code Review - linux-3.10.git/blobdiff - arch/Kconfig
arch/mips/lantiq/xway: don't check resource with devm_ioremap_resource
[linux-3.10.git] / arch / Kconfig
index 215e46073c453d63a691b4fc02bde826a9d4ad50..dd0e8eb8042f746cc7072c0bf67d1fac8c0d4a7e 100644 (file)
@@ -30,10 +30,15 @@ config OPROFILE_EVENT_MULTIPLEX
 config HAVE_OPROFILE
        bool
 
+config OPROFILE_NMI_TIMER
+       def_bool y
+       depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
+
 config KPROBES
        bool "Kprobes"
-       depends on KALLSYMS && MODULES
+       depends on MODULES
        depends on HAVE_KPROBES
+       select KALLSYMS
        help
          Kprobes allows you to trap at almost any kernel address and
          execute a callback function.  register_kprobe() establishes
@@ -41,6 +46,79 @@ config KPROBES
          for kernel debugging, non-intrusive instrumentation and testing.
          If in doubt, say "N".
 
+config JUMP_LABEL
+       bool "Optimize very unlikely/likely branches"
+       depends on HAVE_ARCH_JUMP_LABEL
+       help
+         This option enables a transparent branch optimization that
+        makes certain almost-always-true or almost-always-false branch
+        conditions even cheaper to execute within the kernel.
+
+        Certain performance-sensitive kernel code, such as trace points,
+        scheduler functionality, networking code and KVM have such
+        branches and include support for this optimization technique.
+
+         If it is detected that the compiler has support for "asm goto",
+        the kernel will compile such branches with just a nop
+        instruction. When the condition flag is toggled to true, the
+        nop will be converted to a jump instruction to execute the
+        conditional block of instructions.
+
+        This technique lowers overhead and stress on the branch prediction
+        of the processor and generally makes the kernel faster. The update
+        of the condition is slower, but those are always very rare.
+
+        ( On 32-bit x86, the necessary options added to the compiler
+          flags may increase the size of the kernel slightly. )
+
+config OPTPROBES
+       def_bool y
+       depends on KPROBES && HAVE_OPTPROBES
+       depends on !PREEMPT
+
+config KPROBES_ON_FTRACE
+       def_bool y
+       depends on KPROBES && HAVE_KPROBES_ON_FTRACE
+       depends on DYNAMIC_FTRACE_WITH_REGS
+       help
+        If function tracer is enabled and the arch supports full
+        passing of pt_regs to function tracing, then kprobes can
+        optimize on top of function tracing.
+
+config UPROBES
+       bool "Transparent user-space probes (EXPERIMENTAL)"
+       depends on UPROBE_EVENT && PERF_EVENTS
+       default n
+       select PERCPU_RWSEM
+       help
+         Uprobes is the user-space counterpart to kprobes: they
+         enable instrumentation applications (such as 'perf probe')
+         to establish unintrusive probes in user-space binaries and
+         libraries, by executing handler functions when the probes
+         are hit by user-space applications.
+
+         ( These probes come in the form of single-byte breakpoints,
+           managed by the kernel and kept transparent to the probed
+           application. )
+
+         If in doubt, say "N".
+
+config HAVE_64BIT_ALIGNED_ACCESS
+       def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
+       help
+         Some architectures require 64 bit accesses to be 64 bit
+         aligned, which also requires structs containing 64 bit values
+         to be 64 bit aligned too. This includes some 32 bit
+         architectures which can do 64 bit accesses, as well as 64 bit
+         architectures without unaligned access.
+
+         This symbol should be selected by an architecture if 64 bit
+         accesses are required to be 64 bit aligned in this way even
+         though it is not a 64 bit architecture.
+
+         See Documentation/unaligned-memory-access.txt for more
+         information on the topic of unaligned memory accesses.
+
 config HAVE_EFFICIENT_UNALIGNED_ACCESS
        bool
        help
@@ -60,8 +138,24 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS
          See Documentation/unaligned-memory-access.txt for more
          information on the topic of unaligned memory accesses.
 
-config HAVE_SYSCALL_WRAPPERS
-       bool
+config ARCH_USE_BUILTIN_BSWAP
+       bool
+       help
+        Modern versions of GCC (since 4.4) have builtin functions
+        for handling byte-swapping. Using these, instead of the old
+        inline assembler that the architecture code provides in the
+        __arch_bswapXX() macros, allows the compiler to see what's
+        happening and offers more opportunity for optimisation. In
+        particular, the compiler will be able to combine the byteswap
+        with a nearby load or store and use load-and-swap or
+        store-and-swap instructions if the architecture has them. It
+        should almost *never* result in code which is worse than the
+        hand-coded assembler in <asm/swab.h>.  But just in case it
+        does, the use of the builtins is optional.
+
+        Any architecture with load-and-swap or store-and-swap
+        instructions should set this. And it shouldn't hurt to set it
+        on architectures that don't have such instructions.
 
 config KRETPROBES
        def_bool y
@@ -83,6 +177,14 @@ config HAVE_KPROBES
 config HAVE_KRETPROBES
        bool
 
+config HAVE_OPTPROBES
+       bool
+
+config HAVE_KPROBES_ON_FTRACE
+       bool
+
+config HAVE_NMI_WATCHDOG
+       bool
 #
 # An arch should select this if it provides all these things:
 #
@@ -102,9 +204,27 @@ config HAVE_ARCH_TRACEHOOK
 config HAVE_DMA_ATTRS
        bool
 
+config HAVE_DMA_CONTIGUOUS
+       bool
+
 config USE_GENERIC_SMP_HELPERS
        bool
 
+config GENERIC_SMP_IDLE_THREAD
+       bool
+
+# Select if arch init_task initializer is different to init/init_task.c
+config ARCH_INIT_TASK
+       bool
+
+# Select if arch has its private alloc_task_struct() function
+config ARCH_TASK_STRUCT_ALLOCATOR
+       bool
+
+# Select if arch has its private alloc_thread_info() function
+config ARCH_THREAD_INFO_ALLOCATOR
+       bool
+
 config HAVE_REGS_AND_STACK_ACCESS_API
        bool
        help
@@ -122,14 +242,189 @@ config HAVE_CLK
 config HAVE_DMA_API_DEBUG
        bool
 
-config HAVE_DEFAULT_NO_SPIN_MUTEXES
-       bool
-
 config HAVE_HW_BREAKPOINT
        bool
        depends on PERF_EVENTS
 
+config HAVE_MIXED_BREAKPOINTS_REGS
+       bool
+       depends on HAVE_HW_BREAKPOINT
+       help
+         Depending on the arch implementation of hardware breakpoints,
+         some of them have separate registers for data and instruction
+         breakpoints addresses, others have mixed registers to store
+         them but define the access type in a control register.
+         Select this option if your arch implements breakpoints under the
+         latter fashion.
+
 config HAVE_USER_RETURN_NOTIFIER
        bool
 
+config HAVE_PERF_EVENTS_NMI
+       bool
+       help
+         System hardware can generate an NMI using the perf event
+         subsystem.  Also has support for calculating CPU cycle events
+         to determine how many clock cycles in a given period.
+
+config HAVE_PERF_REGS
+       bool
+       help
+         Support selective register dumps for perf events. This includes
+         bit-mapping of each registers and a unique architecture id.
+
+config HAVE_PERF_USER_STACK_DUMP
+       bool
+       help
+         Support user stack dumps for perf event samples. This needs
+         access to the user stack pointer which is not unified across
+         architectures.
+
+config HAVE_ARCH_JUMP_LABEL
+       bool
+
+config HAVE_ARCH_MUTEX_CPU_RELAX
+       bool
+
+config HAVE_RCU_TABLE_FREE
+       bool
+
+config ARCH_HAVE_NMI_SAFE_CMPXCHG
+       bool
+
+config HAVE_ALIGNED_STRUCT_PAGE
+       bool
+       help
+         This makes sure that struct pages are double word aligned and that
+         e.g. the SLUB allocator can perform double word atomic operations
+         on a struct page for better performance. However selecting this
+         might increase the size of a struct page by a word.
+
+config HAVE_CMPXCHG_LOCAL
+       bool
+
+config HAVE_CMPXCHG_DOUBLE
+       bool
+
+config ARCH_WANT_IPC_PARSE_VERSION
+       bool
+
+config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
+       bool
+
+config ARCH_WANT_OLD_COMPAT_IPC
+       select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
+       bool
+
+config HAVE_ARCH_SECCOMP_FILTER
+       bool
+       help
+         An arch should select this symbol if it provides all of these things:
+         - syscall_get_arch()
+         - syscall_get_arguments()
+         - syscall_rollback()
+         - syscall_set_return_value()
+         - SIGSYS siginfo_t support
+         - secure_computing is called from a ptrace_event()-safe context
+         - secure_computing return value is checked and a return value of -1
+           results in the system call being skipped immediately.
+
+config SECCOMP_FILTER
+       def_bool y
+       depends on HAVE_ARCH_SECCOMP_FILTER && SECCOMP && NET
+       help
+         Enable tasks to build secure computing environments defined
+         in terms of Berkeley Packet Filter programs which implement
+         task-defined system call filtering polices.
+
+         See Documentation/prctl/seccomp_filter.txt for details.
+
+config HAVE_CONTEXT_TRACKING
+       bool
+       help
+         Provide kernel/user boundaries probes necessary for subsystems
+         that need it, such as userspace RCU extended quiescent state.
+         Syscalls need to be wrapped inside user_exit()-user_enter() through
+         the slow path using TIF_NOHZ flag. Exceptions handlers must be
+         wrapped as well. Irqs are already protected inside
+         rcu_irq_enter/rcu_irq_exit() but preemption or signal handling on
+         irq exit still need to be protected.
+
+config HAVE_VIRT_CPU_ACCOUNTING
+       bool
+
+config HAVE_IRQ_TIME_ACCOUNTING
+       bool
+       help
+         Archs need to ensure they use a high enough resolution clock to
+         support irq time accounting and then call enable_sched_clock_irqtime().
+
+config HAVE_ARCH_TRANSPARENT_HUGEPAGE
+       bool
+
+config HAVE_MOD_ARCH_SPECIFIC
+       bool
+       help
+         The arch uses struct mod_arch_specific to store data.  Many arches
+         just need a simple module loader without arch specific data - those
+         should not enable this.
+
+config MODULES_USE_ELF_RELA
+       bool
+       help
+         Modules only use ELF RELA relocations.  Modules with ELF REL
+         relocations will give an error.
+
+config MODULES_USE_ELF_REL
+       bool
+       help
+         Modules only use ELF REL relocations.  Modules with ELF RELA
+         relocations will give an error.
+
+config HAVE_UNDERSCORE_SYMBOL_PREFIX
+       bool
+       help
+         Some architectures generate an _ in front of C symbols; things like
+         module loading and assembly files need to know about this.
+
+#
+# ABI hall of shame
+#
+config CLONE_BACKWARDS
+       bool
+       help
+         Architecture has tls passed as the 4th argument of clone(2),
+         not the 5th one.
+
+config CLONE_BACKWARDS2
+       bool
+       help
+         Architecture has the first two arguments of clone(2) swapped.
+
+config ODD_RT_SIGACTION
+       bool
+       help
+         Architecture has unusual rt_sigaction(2) arguments
+
+config OLD_SIGSUSPEND
+       bool
+       help
+         Architecture has old sigsuspend(2) syscall, of one-argument variety
+
+config OLD_SIGSUSPEND3
+       bool
+       help
+         Even weirder antique ABI - three-argument sigsuspend(2)
+
+config OLD_SIGACTION
+       bool
+       help
+         Architecture has old sigaction(2) syscall.  Nope, not the same
+         as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
+         but fairly different variant of sigaction(2), thanks to OSF/1
+         compatibility...
+
+config COMPAT_OLD_SIGACTION
+       bool
+
 source "kernel/gcov/Kconfig"