The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/arch/Kconfig

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #
    2 # General architecture dependent options
    3 #
    4 
    5 config 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 
   18 config 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 
   30 config HAVE_OPROFILE
   31         bool
   32 
   33 config OPROFILE_NMI_TIMER
   34         def_bool y
   35         depends on PERF_EVENTS && HAVE_PERF_EVENTS_NMI
   36 
   37 config 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 
   49 config 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 
   74 config OPTPROBES
   75         def_bool y
   76         depends on KPROBES && HAVE_OPTPROBES
   77         depends on !PREEMPT
   78 
   79 config UPROBES
   80         bool "Transparent user-space probes (EXPERIMENTAL)"
   81         depends on UPROBE_EVENT && PERF_EVENTS
   82         default n
   83         select PERCPU_RWSEM
   84         help
   85           Uprobes is the user-space counterpart to kprobes: they
   86           enable instrumentation applications (such as 'perf probe')
   87           to establish unintrusive probes in user-space binaries and
   88           libraries, by executing handler functions when the probes
   89           are hit by user-space applications.
   90 
   91           ( These probes come in the form of single-byte breakpoints,
   92             managed by the kernel and kept transparent to the probed
   93             application. )
   94 
   95           If in doubt, say "N".
   96 
   97 config HAVE_EFFICIENT_UNALIGNED_ACCESS
   98         bool
   99         help
  100           Some architectures are unable to perform unaligned accesses
  101           without the use of get_unaligned/put_unaligned. Others are
  102           unable to perform such accesses efficiently (e.g. trap on
  103           unaligned access and require fixing it up in the exception
  104           handler.)
  105 
  106           This symbol should be selected by an architecture if it can
  107           perform unaligned accesses efficiently to allow different
  108           code paths to be selected for these cases. Some network
  109           drivers, for example, could opt to not fix up alignment
  110           problems with received packets if doing so would not help
  111           much.
  112 
  113           See Documentation/unaligned-memory-access.txt for more
  114           information on the topic of unaligned memory accesses.
  115 
  116 config ARCH_USE_BUILTIN_BSWAP
  117        bool
  118        help
  119          Modern versions of GCC (since 4.4) have builtin functions
  120          for handling byte-swapping. Using these, instead of the old
  121          inline assembler that the architecture code provides in the
  122          __arch_bswapXX() macros, allows the compiler to see what's
  123          happening and offers more opportunity for optimisation. In
  124          particular, the compiler will be able to combine the byteswap
  125          with a nearby load or store and use load-and-swap or
  126          store-and-swap instructions if the architecture has them. It
  127          should almost *never* result in code which is worse than the
  128          hand-coded assembler in <asm/swab.h>.  But just in case it
  129          does, the use of the builtins is optional.
  130 
  131          Any architecture with load-and-swap or store-and-swap
  132          instructions should set this. And it shouldn't hurt to set it
  133          on architectures that don't have such instructions.
  134 
  135 config HAVE_SYSCALL_WRAPPERS
  136         bool
  137 
  138 config KRETPROBES
  139         def_bool y
  140         depends on KPROBES && HAVE_KRETPROBES
  141 
  142 config USER_RETURN_NOTIFIER
  143         bool
  144         depends on HAVE_USER_RETURN_NOTIFIER
  145         help
  146           Provide a kernel-internal notification when a cpu is about to
  147           switch to user mode.
  148 
  149 config HAVE_IOREMAP_PROT
  150         bool
  151 
  152 config HAVE_KPROBES
  153         bool
  154 
  155 config HAVE_KRETPROBES
  156         bool
  157 
  158 config HAVE_OPTPROBES
  159         bool
  160 
  161 config HAVE_NMI_WATCHDOG
  162         bool
  163 #
  164 # An arch should select this if it provides all these things:
  165 #
  166 #       task_pt_regs()          in asm/processor.h or asm/ptrace.h
  167 #       arch_has_single_step()  if there is hardware single-step support
  168 #       arch_has_block_step()   if there is hardware block-step support
  169 #       asm/syscall.h           supplying asm-generic/syscall.h interface
  170 #       linux/regset.h          user_regset interfaces
  171 #       CORE_DUMP_USE_REGSET    #define'd in linux/elf.h
  172 #       TIF_SYSCALL_TRACE       calls tracehook_report_syscall_{entry,exit}
  173 #       TIF_NOTIFY_RESUME       calls tracehook_notify_resume()
  174 #       signal delivery         calls tracehook_signal_handler()
  175 #
  176 config HAVE_ARCH_TRACEHOOK
  177         bool
  178 
  179 config HAVE_DMA_ATTRS
  180         bool
  181 
  182 config HAVE_DMA_CONTIGUOUS
  183         bool
  184 
  185 config USE_GENERIC_SMP_HELPERS
  186         bool
  187 
  188 config GENERIC_SMP_IDLE_THREAD
  189        bool
  190 
  191 # Select if arch init_task initializer is different to init/init_task.c
  192 config ARCH_INIT_TASK
  193        bool
  194 
  195 # Select if arch has its private alloc_task_struct() function
  196 config ARCH_TASK_STRUCT_ALLOCATOR
  197         bool
  198 
  199 # Select if arch has its private alloc_thread_info() function
  200 config ARCH_THREAD_INFO_ALLOCATOR
  201         bool
  202 
  203 config HAVE_REGS_AND_STACK_ACCESS_API
  204         bool
  205         help
  206           This symbol should be selected by an architecure if it supports
  207           the API needed to access registers and stack entries from pt_regs,
  208           declared in asm/ptrace.h
  209           For example the kprobes-based event tracer needs this API.
  210 
  211 config HAVE_CLK
  212         bool
  213         help
  214           The <linux/clk.h> calls support software clock gating and
  215           thus are a key power management tool on many systems.
  216 
  217 config HAVE_DMA_API_DEBUG
  218         bool
  219 
  220 config HAVE_HW_BREAKPOINT
  221         bool
  222         depends on PERF_EVENTS
  223 
  224 config HAVE_MIXED_BREAKPOINTS_REGS
  225         bool
  226         depends on HAVE_HW_BREAKPOINT
  227         help
  228           Depending on the arch implementation of hardware breakpoints,
  229           some of them have separate registers for data and instruction
  230           breakpoints addresses, others have mixed registers to store
  231           them but define the access type in a control register.
  232           Select this option if your arch implements breakpoints under the
  233           latter fashion.
  234 
  235 config HAVE_USER_RETURN_NOTIFIER
  236         bool
  237 
  238 config HAVE_PERF_EVENTS_NMI
  239         bool
  240         help
  241           System hardware can generate an NMI using the perf event
  242           subsystem.  Also has support for calculating CPU cycle events
  243           to determine how many clock cycles in a given period.
  244 
  245 config HAVE_PERF_REGS
  246         bool
  247         help
  248           Support selective register dumps for perf events. This includes
  249           bit-mapping of each registers and a unique architecture id.
  250 
  251 config HAVE_PERF_USER_STACK_DUMP
  252         bool
  253         help
  254           Support user stack dumps for perf event samples. This needs
  255           access to the user stack pointer which is not unified across
  256           architectures.
  257 
  258 config HAVE_ARCH_JUMP_LABEL
  259         bool
  260 
  261 config HAVE_ARCH_MUTEX_CPU_RELAX
  262         bool
  263 
  264 config HAVE_RCU_TABLE_FREE
  265         bool
  266 
  267 config ARCH_HAVE_NMI_SAFE_CMPXCHG
  268         bool
  269 
  270 config HAVE_ALIGNED_STRUCT_PAGE
  271         bool
  272         help
  273           This makes sure that struct pages are double word aligned and that
  274           e.g. the SLUB allocator can perform double word atomic operations
  275           on a struct page for better performance. However selecting this
  276           might increase the size of a struct page by a word.
  277 
  278 config HAVE_CMPXCHG_LOCAL
  279         bool
  280 
  281 config HAVE_CMPXCHG_DOUBLE
  282         bool
  283 
  284 config ARCH_WANT_IPC_PARSE_VERSION
  285         bool
  286 
  287 config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
  288         bool
  289 
  290 config ARCH_WANT_OLD_COMPAT_IPC
  291         select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
  292         bool
  293 
  294 config HAVE_ARCH_SECCOMP_FILTER
  295         bool
  296         help
  297           An arch should select this symbol if it provides all of these things:
  298           - syscall_get_arch()
  299           - syscall_get_arguments()
  300           - syscall_rollback()
  301           - syscall_set_return_value()
  302           - SIGSYS siginfo_t support
  303           - secure_computing is called from a ptrace_event()-safe context
  304           - secure_computing return value is checked and a return value of -1
  305             results in the system call being skipped immediately.
  306 
  307 config SECCOMP_FILTER
  308         def_bool y
  309         depends on HAVE_ARCH_SECCOMP_FILTER && SECCOMP && NET
  310         help
  311           Enable tasks to build secure computing environments defined
  312           in terms of Berkeley Packet Filter programs which implement
  313           task-defined system call filtering polices.
  314 
  315           See Documentation/prctl/seccomp_filter.txt for details.
  316 
  317 config HAVE_CONTEXT_TRACKING
  318         bool
  319         help
  320           Provide kernel/user boundaries probes necessary for subsystems
  321           that need it, such as userspace RCU extended quiescent state.
  322           Syscalls need to be wrapped inside user_exit()-user_enter() through
  323           the slow path using TIF_NOHZ flag. Exceptions handlers must be
  324           wrapped as well. Irqs are already protected inside
  325           rcu_irq_enter/rcu_irq_exit() but preemption or signal handling on
  326           irq exit still need to be protected.
  327 
  328 config HAVE_VIRT_CPU_ACCOUNTING
  329         bool
  330 
  331 config HAVE_IRQ_TIME_ACCOUNTING
  332         bool
  333         help
  334           Archs need to ensure they use a high enough resolution clock to
  335           support irq time accounting and then call enable_sched_clock_irqtime().
  336 
  337 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
  338         bool
  339 
  340 config HAVE_MOD_ARCH_SPECIFIC
  341         bool
  342         help
  343           The arch uses struct mod_arch_specific to store data.  Many arches
  344           just need a simple module loader without arch specific data - those
  345           should not enable this.
  346 
  347 config MODULES_USE_ELF_RELA
  348         bool
  349         help
  350           Modules only use ELF RELA relocations.  Modules with ELF REL
  351           relocations will give an error.
  352 
  353 config MODULES_USE_ELF_REL
  354         bool
  355         help
  356           Modules only use ELF REL relocations.  Modules with ELF RELA
  357           relocations will give an error.
  358 
  359 config GENERIC_SIGALTSTACK
  360         bool
  361 
  362 #
  363 # ABI hall of shame
  364 #
  365 config CLONE_BACKWARDS
  366         bool
  367         help
  368           Architecture has tls passed as the 4th argument of clone(2),
  369           not the 5th one.
  370 
  371 config CLONE_BACKWARDS2
  372         bool
  373         help
  374           Architecture has the first two arguments of clone(2) swapped.
  375 
  376 source "kernel/gcov/Kconfig"

Cache object: 462ed5967da62fb2b3613d142a1ef559


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.