linux/init/Kconfig History
<<
>>
Prefs
   1config ARCH
   2        string
   3        option env="ARCH"
   4
   5config KERNELVERSION
   6        string
   7        option env="KERNELVERSION"
   8
   9config DEFCONFIG_LIST
  10        string
  11        depends on !UML
  12        option defconfig_list
  13        default "/lib/modules/$UNAME_RELEASE/.config"
  14        default "/etc/kernel-config"
  15        default "/boot/config-$UNAME_RELEASE"
  16        default "$ARCH_DEFCONFIG"
  17        default "arch/$ARCH/defconfig"
  18
  19config CONSTRUCTORS
  20        bool
  21        depends on !UML
  22        default y
  23
  24menu "General setup"
  25
  26config EXPERIMENTAL
  27        bool "Prompt for development and/or incomplete code/drivers"
  28        ---help---
  29          Some of the various things that Linux supports (such as network
  30          drivers, file systems, network protocols, etc.) can be in a state
  31          of development where the functionality, stability, or the level of
  32          testing is not yet high enough for general use. This is usually
  33          known as the "alpha-test" phase among developers. If a feature is
  34          currently in alpha-test, then the developers usually discourage
  35          uninformed widespread use of this feature by the general public to
  36          avoid "Why doesn't this work?" type mail messages. However, active
  37          testing and use of these systems is welcomed. Just be aware that it
  38          may not meet the normal level of reliability or it may fail to work
  39          in some special cases. Detailed bug reports from people familiar
  40          with the kernel internals are usually welcomed by the developers
  41          (before submitting bug reports, please read the documents
  42          <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>,
  43          <file:Documentation/BUG-HUNTING>, and
  44          <file:Documentation/oops-tracing.txt> in the kernel source).
  45
  46          This option will also make obsoleted drivers available. These are
  47          drivers that have been replaced by something else, and/or are
  48          scheduled to be removed in a future kernel release.
  49
  50          Unless you intend to help test and develop a feature or driver that
  51          falls into this category, or you have a situation that requires
  52          using these features, you should probably say N here, which will
  53          cause the configurator to present you with fewer choices. If
  54          you say Y here, you will be offered the choice of using features or
  55          drivers that are currently considered to be in the alpha-test phase.
  56
  57config BROKEN
  58        bool
  59
  60config BROKEN_ON_SMP
  61        bool
  62        depends on BROKEN || !SMP
  63        default y
  64
  65config LOCK_KERNEL
  66        bool
  67        depends on SMP || PREEMPT
  68        default y
  69
  70config INIT_ENV_ARG_LIMIT
  71        int
  72        default 32 if !UML
  73        default 128 if UML
  74        help
  75          Maximum of each of the number of arguments and environment
  76          variables passed to init from the kernel command line.
  77
  78
  79config LOCALVERSION
  80        string "Local version - append to kernel release"
  81        help
  82          Append an extra string to the end of your kernel version.
  83          This will show up when you type uname, for example.
  84          The string you set here will be appended after the contents of
  85          any files with a filename matching localversion* in your
  86          object and source tree, in that order.  Your total string can
  87          be a maximum of 64 characters.
  88
  89config LOCALVERSION_AUTO
  90        bool "Automatically append version information to the version string"
  91        default y
  92        help
  93          This will try to automatically determine if the current tree is a
  94          release tree by looking for git tags that belong to the current
  95          top of tree revision.
  96
  97          A string of the format -gxxxxxxxx will be added to the localversion
  98          if a git-based tree is found.  The string generated by this will be
  99          appended after any matching localversion* files, and after the value
 100          set in CONFIG_LOCALVERSION.
 101
 102          (The actual string used here is the first eight characters produced
 103          by running the command:
 104
 105            $ git rev-parse --verify HEAD
 106
 107          which is done within the script "scripts/setlocalversion".)
 108
 109config HAVE_KERNEL_GZIP
 110        bool
 111
 112config HAVE_KERNEL_BZIP2
 113        bool
 114
 115config HAVE_KERNEL_LZMA
 116        bool
 117
 118config HAVE_KERNEL_LZO
 119        bool
 120
 121choice
 122        prompt "Kernel compression mode"
 123        default KERNEL_GZIP
 124        depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_LZO
 125        help
 126          The linux kernel is a kind of self-extracting executable.
 127          Several compression algorithms are available, which differ
 128          in efficiency, compression and decompression speed.
 129          Compression speed is only relevant when building a kernel.
 130          Decompression speed is relevant at each boot.
 131
 132          If you have any problems with bzip2 or lzma compressed
 133          kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older
 134          version of this functionality (bzip2 only), for 2.4, was
 135          supplied by Christian Ludwig)
 136
 137          High compression options are mostly useful for users, who
 138          are low on disk space (embedded systems), but for whom ram
 139          size matters less.
 140
 141          If in doubt, select 'gzip'
 142
 143config KERNEL_GZIP
 144        bool "Gzip"
 145        depends on HAVE_KERNEL_GZIP
 146        help
 147          The old and tried gzip compression. It provides a good balance
 148          between compression ratio and decompression speed.
 149
 150config KERNEL_BZIP2
 151        bool "Bzip2"
 152        depends on HAVE_KERNEL_BZIP2
 153        help
 154          Its compression ratio and speed is intermediate.
 155          Decompression speed is slowest among the three.  The kernel
 156          size is about 10% smaller with bzip2, in comparison to gzip.
 157          Bzip2 uses a large amount of memory. For modern kernels you
 158          will need at least 8MB RAM or more for booting.
 159
 160config KERNEL_LZMA
 161        bool "LZMA"
 162        depends on HAVE_KERNEL_LZMA
 163        help
 164          The most recent compression algorithm.
 165          Its ratio is best, decompression speed is between the other
 166          two. Compression is slowest.  The kernel size is about 33%
 167          smaller with LZMA in comparison to gzip.
 168
 169config KERNEL_LZO
 170        bool "LZO"
 171        depends on HAVE_KERNEL_LZO
 172        help
 173          Its compression ratio is the poorest among the 4. The kernel
 174          size is about about 10% bigger than gzip; however its speed
 175          (both compression and decompression) is the fastest.
 176
 177endchoice
 178
 179config SWAP
 180        bool "Support for paging of anonymous memory (swap)"
 181        depends on MMU && BLOCK
 182        default y
 183        help
 184          This option allows you to choose whether you want to have support
 185          for so called swap devices or swap files in your kernel that are
 186          used to provide more virtual memory than the actual RAM present
 187          in your computer.  If unsure say Y.
 188
 189config SYSVIPC
 190        bool "System V IPC"
 191        ---help---
 192          Inter Process Communication is a suite of library functions and
 193          system calls which let processes (running programs) synchronize and
 194          exchange information. It is generally considered to be a good thing,
 195          and some programs won't run unless you say Y here. In particular, if
 196          you want to run the DOS emulator dosemu under Linux (read the
 197          DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
 198          you'll need to say Y here.
 199
 200          You can find documentation about IPC with "info ipc" and also in
 201          section 6.4 of the Linux Programmer's Guide, available from
 202          <http://www.tldp.org/guides.html>.
 203
 204config SYSVIPC_SYSCTL
 205        bool
 206        depends on SYSVIPC
 207        depends on SYSCTL
 208        default y
 209
 210config POSIX_MQUEUE
 211        bool "POSIX Message Queues"
 212        depends on NET && EXPERIMENTAL
 213        ---help---
 214          POSIX variant of message queues is a part of IPC. In POSIX message
 215          queues every message has a priority which decides about succession
 216          of receiving it by a process. If you want to compile and run
 217          programs written e.g. for Solaris with use of its POSIX message
 218          queues (functions mq_*) say Y here.
 219
 220          POSIX message queues are visible as a filesystem called 'mqueue'
 221          and can be mounted somewhere if you want to do filesystem
 222          operations on message queues.
 223
 224          If unsure, say Y.
 225
 226config POSIX_MQUEUE_SYSCTL
 227        bool
 228        depends on POSIX_MQUEUE
 229        depends on SYSCTL
 230        default y
 231
 232config BSD_PROCESS_ACCT
 233        bool "BSD Process Accounting"
 234        help
 235          If you say Y here, a user level program will be able to instruct the
 236          kernel (via a special system call) to write process accounting
 237          information to a file: whenever a process exits, information about
 238          that process will be appended to the file by the kernel.  The
 239          information includes things such as creation time, owning user,
 240          command name, memory usage, controlling terminal etc. (the complete
 241          list is in the struct acct in <file:include/linux/acct.h>).  It is
 242          up to the user level program to do useful things with this
 243          information.  This is generally a good idea, so say Y.
 244
 245config BSD_PROCESS_ACCT_V3
 246        bool "BSD Process Accounting version 3 file format"
 247        depends on BSD_PROCESS_ACCT
 248        default n
 249        help
 250          If you say Y here, the process accounting information is written
 251          in a new file format that also logs the process IDs of each
 252          process and it's parent. Note that this file format is incompatible
 253          with previous v0/v1/v2 file formats, so you will need updated tools
 254          for processing it. A preliminary version of these tools is available
 255          at <http://www.gnu.org/software/acct/>.
 256
 257config TASKSTATS
 258        bool "Export task/process statistics through netlink (EXPERIMENTAL)"
 259        depends on NET
 260        default n
 261        help
 262          Export selected statistics for tasks/processes through the
 263          generic netlink interface. Unlike BSD process accounting, the
 264          statistics are available during the lifetime of tasks/processes as
 265          responses to commands. Like BSD accounting, they are sent to user
 266          space on task exit.
 267
 268          Say N if unsure.
 269
 270config TASK_DELAY_ACCT
 271        bool "Enable per-task delay accounting (EXPERIMENTAL)"
 272        depends on TASKSTATS
 273        help
 274          Collect information on time spent by a task waiting for system
 275          resources like cpu, synchronous block I/O completion and swapping
 276          in pages. Such statistics can help in setting a task's priorities
 277          relative to other tasks for cpu, io, rss limits etc.
 278
 279          Say N if unsure.
 280
 281config TASK_XACCT
 282        bool "Enable extended accounting over taskstats (EXPERIMENTAL)"
 283        depends on TASKSTATS
 284        help
 285          Collect extended task accounting data and send the data
 286          to userland for processing over the taskstats interface.
 287
 288          Say N if unsure.
 289
 290config TASK_IO_ACCOUNTING
 291        bool "Enable per-task storage I/O accounting (EXPERIMENTAL)"
 292        depends on TASK_XACCT
 293        help
 294          Collect information on the number of bytes of storage I/O which this
 295          task has caused.
 296
 297          Say N if unsure.
 298
 299config AUDIT
 300        bool "Auditing support"
 301        depends on NET
 302        help
 303          Enable auditing infrastructure that can be used with another
 304          kernel subsystem, such as SELinux (which requires this for
 305          logging of avc messages output).  Does not do system-call
 306          auditing without CONFIG_AUDITSYSCALL.
 307
 308config AUDITSYSCALL
 309        bool "Enable system-call auditing support"
 310        depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH)
 311        default y if SECURITY_SELINUX
 312        help
 313          Enable low-overhead system-call auditing infrastructure that
 314          can be used independently or with another kernel subsystem,
 315          such as SELinux.  To use audit's filesystem watch feature, please
 316          ensure that INOTIFY is configured.
 317
 318config AUDIT_TREE
 319        def_bool y
 320        depends on AUDITSYSCALL
 321        select INOTIFY
 322
 323menu "RCU Subsystem"
 324
 325choice
 326        prompt "RCU Implementation"
 327        default TREE_RCU
 328
 329config TREE_RCU
 330        bool "Tree-based hierarchical RCU"
 331        help
 332          This option selects the RCU implementation that is
 333          designed for very large SMP system with hundreds or
 334          thousands of CPUs.  It also scales down nicely to
 335          smaller systems.
 336
 337config TREE_PREEMPT_RCU
 338        bool "Preemptable tree-based hierarchical RCU"
 339        depends on PREEMPT
 340        help
 341          This option selects the RCU implementation that is
 342          designed for very large SMP systems with hundreds or
 343          thousands of CPUs, but for which real-time response
 344          is also required.  It also scales down nicely to
 345          smaller systems.
 346
 347config TINY_RCU
 348        bool "UP-only small-memory-footprint RCU"
 349        depends on !SMP
 350        help
 351          This option selects the RCU implementation that is
 352          designed for UP systems from which real-time response
 353          is not required.  This option greatly reduces the
 354          memory footprint of RCU.
 355
 356endchoice
 357
 358config RCU_TRACE
 359        bool "Enable tracing for RCU"
 360        depends on TREE_RCU || TREE_PREEMPT_RCU
 361        help
 362          This option provides tracing in RCU which presents stats
 363          in debugfs for debugging RCU implementation.
 364
 365          Say Y here if you want to enable RCU tracing
 366          Say N if you are unsure.
 367
 368config RCU_FANOUT
 369        int "Tree-based hierarchical RCU fanout value"
 370        range 2 64 if 64BIT
 371        range 2 32 if !64BIT
 372        depends on TREE_RCU || TREE_PREEMPT_RCU
 373        default 64 if 64BIT
 374        default 32 if !64BIT
 375        help
 376          This option controls the fanout of hierarchical implementations
 377          of RCU, allowing RCU to work efficiently on machines with
 378          large numbers of CPUs.  This value must be at least the cube
 379          root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
 380          systems and up to 262,144 for 64-bit systems.
 381
 382          Select a specific number if testing RCU itself.
 383          Take the default if unsure.
 384
 385config RCU_FANOUT_EXACT
 386        bool "Disable tree-based hierarchical RCU auto-balancing"
 387        depends on TREE_RCU || TREE_PREEMPT_RCU
 388        default n
 389        help
 390          This option forces use of the exact RCU_FANOUT value specified,
 391          regardless of imbalances in the hierarchy.  This is useful for
 392          testing RCU itself, and might one day be useful on systems with
 393          strong NUMA behavior.
 394
 395          Without RCU_FANOUT_EXACT, the code will balance the hierarchy.
 396
 397          Say N if unsure.
 398
 399config RCU_FAST_NO_HZ
 400        bool "Accelerate last non-dyntick-idle CPU's grace periods"
 401        depends on TREE_RCU && NO_HZ && SMP
 402        default n
 403        help
 404          This option causes RCU to attempt to accelerate grace periods
 405          in order to allow the final CPU to enter dynticks-idle state
 406          more quickly.  On the other hand, this option increases the
 407          overhead of the dynticks-idle checking, particularly on systems
 408          with large numbers of CPUs.
 409
 410          Say Y if energy efficiency is critically important, particularly
 411                if you have relatively few CPUs.
 412
 413          Say N if you are unsure.
 414
 415config TREE_RCU_TRACE
 416        def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU )
 417        select DEBUG_FS
 418        help
 419          This option provides tracing for the TREE_RCU and
 420          TREE_PREEMPT_RCU implementations, permitting Makefile to
 421          trivially select kernel/rcutree_trace.c.
 422
 423endmenu # "RCU Subsystem"
 424
 425config IKCONFIG
 426        tristate "Kernel .config support"
 427        ---help---
 428          This option enables the complete Linux kernel ".config" file
 429          contents to be saved in the kernel. It provides documentation
 430          of which kernel options are used in a running kernel or in an
 431          on-disk kernel.  This information can be extracted from the kernel
 432          image file with the script scripts/extract-ikconfig and used as
 433          input to rebuild the current kernel or to build another kernel.
 434          It can also be extracted from a running kernel by reading
 435          /proc/config.gz if enabled (below).
 436
 437config IKCONFIG_PROC
 438        bool "Enable access to .config through /proc/config.gz"
 439        depends on IKCONFIG && PROC_FS
 440        ---help---
 441          This option enables access to the kernel configuration file
 442          through /proc/config.gz.
 443
 444config LOG_BUF_SHIFT
 445        int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
 446        range 12 21
 447        default 17
 448        help
 449          Select kernel log buffer size as a power of 2.
 450          Examples:
 451                     17 => 128 KB
 452                     16 => 64 KB
 453                     15 => 32 KB
 454                     14 => 16 KB
 455                     13 =>  8 KB
 456                     12 =>  4 KB
 457
 458#
 459# Architectures with an unreliable sched_clock() should select this:
 460#
 461config HAVE_UNSTABLE_SCHED_CLOCK
 462        bool
 463
 464menuconfig CGROUPS
 465        boolean "Control Group support"
 466        depends on EVENTFD
 467        help
 468          This option adds support for grouping sets of processes together, for
 469          use with process control subsystems such as Cpusets, CFS, memory
 470          controls or device isolation.
 471          See
 472                - Documentation/scheduler/sched-design-CFS.txt  (CFS)
 473                - Documentation/cgroups/ (features for grouping, isolation
 474                                          and resource control)
 475
 476          Say N if unsure.
 477
 478if CGROUPS
 479
 480config CGROUP_DEBUG
 481        bool "Example debug cgroup subsystem"
 482        depends on CGROUPS
 483        default n
 484        help
 485          This option enables a simple cgroup subsystem that
 486          exports useful debugging information about the cgroups
 487          framework.
 488
 489          Say N if unsure.
 490
 491config CGROUP_NS
 492        bool "Namespace cgroup subsystem"
 493        depends on CGROUPS
 494        help
 495          Provides a simple namespace cgroup subsystem to
 496          provide hierarchical naming of sets of namespaces,
 497          for instance virtual servers and checkpoint/restart
 498          jobs.
 499
 500config CGROUP_FREEZER
 501        bool "Freezer cgroup subsystem"
 502        depends on CGROUPS
 503        help
 504          Provides a way to freeze and unfreeze all tasks in a
 505          cgroup.
 506
 507config CGROUP_DEVICE
 508        bool "Device controller for cgroups"
 509        depends on CGROUPS && EXPERIMENTAL
 510        help
 511          Provides a cgroup implementing whitelists for devices which
 512          a process in the cgroup can mknod or open.
 513
 514config CPUSETS
 515        bool "Cpuset support"
 516        depends on CGROUPS
 517        help
 518          This option will let you create and manage CPUSETs which
 519          allow dynamically partitioning a system into sets of CPUs and
 520          Memory Nodes and assigning tasks to run only within those sets.
 521          This is primarily useful on large SMP or NUMA systems.
 522
 523          Say N if unsure.
 524
 525config PROC_PID_CPUSET
 526        bool "Include legacy /proc/<pid>/cpuset file"
 527        depends on CPUSETS
 528        default y
 529
 530config CGROUP_CPUACCT
 531        bool "Simple CPU accounting cgroup subsystem"
 532        depends on CGROUPS
 533        help
 534          Provides a simple Resource Controller for monitoring the
 535          total CPU consumed by the tasks in a cgroup.
 536
 537config RESOURCE_COUNTERS
 538        bool "Resource counters"
 539        help
 540          This option enables controller independent resource accounting
 541          infrastructure that works with cgroups.
 542        depends on CGROUPS
 543
 544config CGROUP_MEM_RES_CTLR
 545        bool "Memory Resource Controller for Control Groups"
 546        depends on CGROUPS && RESOURCE_COUNTERS
 547        select MM_OWNER
 548        help
 549          Provides a memory resource controller that manages both anonymous
 550          memory and page cache. (See Documentation/cgroups/memory.txt)
 551
 552          Note that setting this option increases fixed memory overhead
 553          associated with each page of memory in the system. By this,
 554          20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
 555          usage tracking struct at boot. Total amount of this is printed out
 556          at boot.
 557
 558          Only enable when you're ok with these trade offs and really
 559          sure you need the memory resource controller. Even when you enable
 560          this, you can set "cgroup_disable=memory" at your boot option to
 561          disable memory resource controller and you can avoid overheads.
 562          (and lose benefits of memory resource controller)
 563
 564          This config option also selects MM_OWNER config option, which
 565          could in turn add some fork/exit overhead.
 566
 567config CGROUP_MEM_RES_CTLR_SWAP
 568        bool "Memory Resource Controller Swap Extension(EXPERIMENTAL)"
 569        depends on CGROUP_MEM_RES_CTLR && SWAP && EXPERIMENTAL
 570        help
 571          Add swap management feature to memory resource controller. When you
 572          enable this, you can limit mem+swap usage per cgroup. In other words,
 573          when you disable this, memory resource controller has no cares to
 574          usage of swap...a process can exhaust all of the swap. This extension
 575          is useful when you want to avoid exhaustion swap but this itself
 576          adds more overheads and consumes memory for remembering information.
 577          Especially if you use 32bit system or small memory system, please
 578          be careful about enabling this. When memory resource controller
 579          is disabled by boot option, this will be automatically disabled and
 580          there will be no overhead from this. Even when you set this config=y,
 581          if boot option "noswapaccount" is set, swap will not be accounted.
 582          Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
 583          size is 4096bytes, 512k per 1Gbytes of swap.
 584
 585menuconfig CGROUP_SCHED
 586        bool "Group CPU scheduler"
 587        depends on EXPERIMENTAL && CGROUPS
 588        default n
 589        help
 590          This feature lets CPU scheduler recognize task groups and control CPU
 591          bandwidth allocation to such task groups. It uses cgroups to group
 592          tasks.
 593
 594if CGROUP_SCHED
 595config FAIR_GROUP_SCHED
 596        bool "Group scheduling for SCHED_OTHER"
 597        depends on CGROUP_SCHED
 598        default CGROUP_SCHED
 599
 600config RT_GROUP_SCHED
 601        bool "Group scheduling for SCHED_RR/FIFO"
 602        depends on EXPERIMENTAL
 603        depends on CGROUP_SCHED
 604        default n
 605        help
 606          This feature lets you explicitly allocate real CPU bandwidth
 607          to users or control groups (depending on the "Basis for grouping tasks"
 608          setting below. If enabled, it will also make it impossible to
 609          schedule realtime tasks for non-root users until you allocate
 610          realtime bandwidth for them.
 611          See Documentation/scheduler/sched-rt-group.txt for more information.
 612
 613endif #CGROUP_SCHED
 614
 615endif # CGROUPS
 616
 617config MM_OWNER
 618        bool
 619
 620config SYSFS_DEPRECATED
 621        bool
 622
 623config SYSFS_DEPRECATED_V2
 624        bool "enable deprecated sysfs features to support old userspace tools"
 625        depends on SYSFS
 626        default n
 627        select SYSFS_DEPRECATED
 628        help
 629          This option switches the layout of sysfs to the deprecated
 630          version. Do not use it on recent distributions.
 631
 632          The current sysfs layout features a unified device tree at
 633          /sys/devices/, which is able to express a hierarchy between
 634          class devices. If the deprecated option is set to Y, the
 635          unified device tree is split into a bus device tree at
 636          /sys/devices/ and several individual class device trees at
 637          /sys/class/. The class and bus devices will be connected by
 638          "<subsystem>:<name>" and the "device" links. The "block"
 639          class devices, will not show up in /sys/class/block/. Some
 640          subsystems will suppress the creation of some devices which
 641          depend on the unified device tree.
 642
 643          This option is not a pure compatibility option that can
 644          be safely enabled on newer distributions. It will change the
 645          layout of sysfs to the non-extensible deprecated version,
 646          and disable some features, which can not be exported without
 647          confusing older userspace tools. Since 2007/2008 all major
 648          distributions do not enable this option, and ship no tools which
 649          depend on the deprecated layout or this option.
 650
 651          If you are using a new kernel on an older distribution, or use
 652          older userspace tools, you might need to say Y here. Do not say Y,
 653          if the original kernel, that came with your distribution, has
 654          this option set to N.
 655
 656config RELAY
 657        bool "Kernel->user space relay support (formerly relayfs)"
 658        help
 659          This option enables support for relay interface support in
 660          certain file systems (such as debugfs).
 661          It is designed to provide an efficient mechanism for tools and
 662          facilities to relay large amounts of data from kernel space to
 663          user space.
 664
 665          If unsure, say N.
 666
 667config NAMESPACES
 668        bool "Namespaces support" if EMBEDDED
 669        default !EMBEDDED
 670        help
 671          Provides the way to make tasks work with different objects using
 672          the same id. For example same IPC id may refer to different objects
 673          or same user id or pid may refer to different tasks when used in
 674          different namespaces.
 675
 676config UTS_NS
 677        bool "UTS namespace"
 678        depends on NAMESPACES
 679        help
 680          In this namespace tasks see different info provided with the
 681          uname() system call
 682
 683config IPC_NS
 684        bool "IPC namespace"
 685        depends on NAMESPACES && (SYSVIPC || POSIX_MQUEUE)
 686        help
 687          In this namespace tasks work with IPC ids which correspond to
 688          different IPC objects in different namespaces.
 689
 690config USER_NS
 691        bool "User namespace (EXPERIMENTAL)"
 692        depends on NAMESPACES && EXPERIMENTAL
 693        help
 694          This allows containers, i.e. vservers, to use user namespaces
 695          to provide different user info for different servers.
 696          If unsure, say N.
 697
 698config PID_NS
 699        bool "PID Namespaces (EXPERIMENTAL)"
 700        default n
 701        depends on NAMESPACES && EXPERIMENTAL
 702        help
 703          Support process id namespaces.  This allows having multiple
 704          processes with the same pid as long as they are in different
 705          pid namespaces.  This is a building block of containers.
 706
 707          Unless you want to work with an experimental feature
 708          say N here.
 709
 710config NET_NS
 711        bool "Network namespace"
 712        default n
 713        depends on NAMESPACES && EXPERIMENTAL && NET
 714        help
 715          Allow user space to create what appear to be multiple instances
 716          of the network stack.
 717
 718config BLK_DEV_INITRD
 719        bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
 720        depends on BROKEN || !FRV
 721        help
 722          The initial RAM filesystem is a ramfs which is loaded by the
 723          boot loader (loadlin or lilo) and that is mounted as root
 724          before the normal boot procedure. It is typically used to
 725          load modules needed to mount the "real" root file system,
 726          etc. See <file:Documentation/initrd.txt> for details.
 727
 728          If RAM disk support (BLK_DEV_RAM) is also included, this
 729          also enables initial RAM disk (initrd) support and adds
 730          15 Kbytes (more on some other architectures) to the kernel size.
 731
 732          If unsure say Y.
 733
 734if BLK_DEV_INITRD
 735
 736source "usr/Kconfig"
 737
 738endif
 739
 740config CC_OPTIMIZE_FOR_SIZE
 741        bool "Optimize for size"
 742        default y
 743        help
 744          Enabling this option will pass "-Os" instead of "-O2" to gcc
 745          resulting in a smaller kernel.
 746
 747          If unsure, say Y.
 748
 749config SYSCTL
 750        bool
 751
 752config ANON_INODES
 753        bool
 754
 755menuconfig EMBEDDED
 756        bool "Configure standard kernel features (for small systems)"
 757        help
 758          This option allows certain base kernel options and settings
 759          to be disabled or tweaked. This is for specialized
 760          environments which can tolerate a "non-standard" kernel.
 761          Only use this if you really know what you are doing.
 762
 763config UID16
 764        bool "Enable 16-bit UID system calls" if EMBEDDED
 765        depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION)
 766        default y
 767        help
 768          This enables the legacy 16-bit UID syscall wrappers.
 769
 770config SYSCTL_SYSCALL
 771        bool "Sysctl syscall support" if EMBEDDED
 772        depends on PROC_SYSCTL
 773        default y
 774        select SYSCTL
 775        ---help---
 776          sys_sysctl uses binary paths that have been found challenging
 777          to properly maintain and use.  The interface in /proc/sys
 778          using paths with ascii names is now the primary path to this
 779          information.
 780
 781          Almost nothing using the binary sysctl interface so if you are
 782          trying to save some space it is probably safe to disable this,
 783          making your kernel marginally smaller.
 784
 785          If unsure say Y here.
 786
 787config KALLSYMS
 788         bool "Load all symbols for debugging/ksymoops" if EMBEDDED
 789         default y
 790         help
 791           Say Y here to let the kernel print out symbolic crash information and
 792           symbolic stack backtraces. This increases the size of the kernel
 793           somewhat, as all symbols have to be loaded into the kernel image.
 794
 795config KALLSYMS_ALL
 796        bool "Include all symbols in kallsyms"
 797        depends on DEBUG_KERNEL && KALLSYMS
 798        help
 799           Normally kallsyms only contains the symbols of functions, for nicer
 800           OOPS messages.  Some debuggers can use kallsyms for other
 801           symbols too: say Y here to include all symbols, if you need them 
 802           and you don't care about adding 300k to the size of your kernel.
 803
 804           Say N.
 805
 806config KALLSYMS_EXTRA_PASS
 807        bool "Do an extra kallsyms pass"
 808        depends on KALLSYMS
 809        help
 810           If kallsyms is not working correctly, the build will fail with
 811           inconsistent kallsyms data.  If that occurs, log a bug report and
 812           turn on KALLSYMS_EXTRA_PASS which should result in a stable build.
 813           Always say N here unless you find a bug in kallsyms, which must be
 814           reported.  KALLSYMS_EXTRA_PASS is only a temporary workaround while
 815           you wait for kallsyms to be fixed.
 816
 817
 818config HOTPLUG
 819        bool "Support for hot-pluggable devices" if EMBEDDED
 820        default y
 821        help
 822          This option is provided for the case where no hotplug or uevent
 823          capabilities is wanted by the kernel.  You should only consider
 824          disabling this option for embedded systems that do not use modules, a
 825          dynamic /dev tree, or dynamic device discovery.  Just say Y.
 826
 827config PRINTK
 828        default y
 829        bool "Enable support for printk" if EMBEDDED
 830        help
 831          This option enables normal printk support. Removing it
 832          eliminates most of the message strings from the kernel image
 833          and makes the kernel more or less silent. As this makes it
 834          very difficult to diagnose system problems, saying N here is
 835          strongly discouraged.
 836
 837config BUG
 838        bool "BUG() support" if EMBEDDED
 839        default y
 840        help
 841          Disabling this option eliminates support for BUG and WARN, reducing
 842          the size of your kernel image and potentially quietly ignoring
 843          numerous fatal conditions. You should only consider disabling this
 844          option for embedded systems with no facilities for reporting errors.
 845          Just say Y.
 846
 847config ELF_CORE
 848        default y
 849        bool "Enable ELF core dumps" if EMBEDDED
 850        help
 851          Enable support for generating core dumps. Disabling saves about 4k.
 852
 853config PCSPKR_PLATFORM
 854        bool "Enable PC-Speaker support" if EMBEDDED
 855        depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES
 856        default y
 857        help
 858          This option allows to disable the internal PC-Speaker
 859          support, saving some memory.
 860
 861config BASE_FULL
 862        default y
 863        bool "Enable full-sized data structures for core" if EMBEDDED
 864        help
 865          Disabling this option reduces the size of miscellaneous core
 866          kernel data structures. This saves memory on small machines,
 867          but may reduce performance.
 868
 869config FUTEX
 870        bool "Enable futex support" if EMBEDDED
 871        default y
 872        select RT_MUTEXES
 873        help
 874          Disabling this option will cause the kernel to be built without
 875          support for "fast userspace mutexes".  The resulting kernel may not
 876          run glibc-based applications correctly.
 877
 878config EPOLL
 879        bool "Enable eventpoll support" if EMBEDDED
 880        default y
 881        select ANON_INODES
 882        help
 883          Disabling this option will cause the kernel to be built without
 884          support for epoll family of system calls.
 885
 886config SIGNALFD
 887        bool "Enable signalfd() system call" if EMBEDDED
 888        select ANON_INODES
 889        default y
 890        help
 891          Enable the signalfd() system call that allows to receive signals
 892          on a file descriptor.
 893
 894          If unsure, say Y.
 895
 896config TIMERFD
 897        bool "Enable timerfd() system call" if EMBEDDED
 898        select ANON_INODES
 899        default y
 900        help
 901          Enable the timerfd() system call that allows to receive timer
 902          events on a file descriptor.
 903
 904          If unsure, say Y.
 905
 906config EVENTFD
 907        bool "Enable eventfd() system call" if EMBEDDED
 908        select ANON_INODES
 909        default y
 910        help
 911          Enable the eventfd() system call that allows to receive both
 912          kernel notification (ie. KAIO) or userspace notifications.
 913
 914          If unsure, say Y.
 915
 916config SHMEM
 917        bool "Use full shmem filesystem" if EMBEDDED
 918        default y
 919        depends on MMU
 920        help
 921          The shmem is an internal filesystem used to manage shared memory.
 922          It is backed by swap and manages resource limits. It is also exported
 923          to userspace as tmpfs if TMPFS is enabled. Disabling this
 924          option replaces shmem and tmpfs with the much simpler ramfs code,
 925          which may be appropriate on small systems without swap.
 926
 927config AIO
 928        bool "Enable AIO support" if EMBEDDED
 929        default y
 930        help
 931          This option enables POSIX asynchronous I/O which may by used
 932          by some high performance threaded applications. Disabling
 933          this option saves about 7k.
 934
 935config HAVE_PERF_EVENTS
 936        bool
 937        help
 938          See tools/perf/design.txt for details.
 939
 940config PERF_USE_VMALLOC
 941        bool
 942        help
 943          See tools/perf/design.txt for details
 944
 945menu "Kernel Performance Events And Counters"
 946
 947config PERF_EVENTS
 948        bool "Kernel performance events and counters"
 949        default y if (PROFILING || PERF_COUNTERS)
 950        depends on HAVE_PERF_EVENTS
 951        select ANON_INODES
 952        help
 953          Enable kernel support for various performance events provided
 954          by software and hardware.
 955
 956          Software events are supported either built-in or via the
 957          use of generic tracepoints.
 958
 959          Most modern CPUs support performance events via performance
 960          counter registers. These registers count the number of certain
 961          types of hw events: such as instructions executed, cachemisses
 962          suffered, or branches mis-predicted - without slowing down the
 963          kernel or applications. These registers can also trigger interrupts
 964          when a threshold number of events have passed - and can thus be
 965          used to profile the code that runs on that CPU.
 966
 967          The Linux Performance Event subsystem provides an abstraction of
 968          these software and hardware event capabilities, available via a
 969          system call and used by the "perf" utility in tools/perf/. It
 970          provides per task and per CPU counters, and it provides event
 971          capabilities on top of those.
 972
 973          Say Y if unsure.
 974
 975config PERF_COUNTERS
 976        bool "Kernel performance counters (old config option)"
 977        depends on HAVE_PERF_EVENTS
 978        help
 979          This config has been obsoleted by the PERF_EVENTS
 980          config option - please see that one for details.
 981
 982          It has no effect on the kernel whether you enable
 983          it or not, it is a compatibility placeholder.
 984
 985          Say N if unsure.
 986
 987config DEBUG_PERF_USE_VMALLOC
 988        default n
 989        bool "Debug: use vmalloc to back perf mmap() buffers"
 990        depends on PERF_EVENTS && DEBUG_KERNEL
 991        select PERF_USE_VMALLOC
 992        help
 993         Use vmalloc memory to back perf mmap() buffers.
 994
 995         Mostly useful for debugging the vmalloc code on platforms
 996         that don't require it.
 997
 998         Say N if unsure.
 999
1000endmenu
1001
1002config VM_EVENT_COUNTERS
1003        default y
1004        bool "Enable VM event counters for /proc/vmstat" if EMBEDDED
1005        help
1006          VM event counters are needed for event counts to be shown.
1007          This option allows the disabling of the VM event counters
1008          on EMBEDDED systems.  /proc/vmstat will only show page counts
1009          if VM event counters are disabled.
1010
1011config PCI_QUIRKS
1012        default y
1013        bool "Enable PCI quirk workarounds" if EMBEDDED
1014        depends on PCI
1015        help
1016          This enables workarounds for various PCI chipset
1017          bugs/quirks. Disable this only if your target machine is
1018          unaffected by PCI quirks.
1019
1020config SLUB_DEBUG
1021        default y
1022        bool "Enable SLUB debugging support" if EMBEDDED
1023        depends on SLUB && SYSFS
1024        help
1025          SLUB has extensive debug support features. Disabling these can
1026          result in significant savings in code size. This also disables
1027          SLUB sysfs support. /sys/slab will not exist and there will be
1028          no support for cache validation etc.
1029
1030config COMPAT_BRK
1031        bool "Disable heap randomization"
1032        default y
1033        help
1034          Randomizing heap placement makes heap exploits harder, but it
1035          also breaks ancient binaries (including anything libc5 based).
1036          This option changes the bootup default to heap randomization
1037          disabled, and can be overridden at runtime by setting
1038          /proc/sys/kernel/randomize_va_space to 2.
1039
1040          On non-ancient distros (post-2000 ones) N is usually a safe choice.
1041
1042choice
1043        prompt "Choose SLAB allocator"
1044        default SLUB
1045        help
1046           This option allows to select a slab allocator.
1047
1048config SLAB
1049        bool "SLAB"
1050        help
1051          The regular slab allocator that is established and known to work
1052          well in all environments. It organizes cache hot objects in
1053          per cpu and per node queues.
1054
1055config SLUB
1056        bool "SLUB (Unqueued Allocator)"
1057        help
1058           SLUB is a slab allocator that minimizes cache line usage
1059           instead of managing queues of cached objects (SLAB approach).
1060           Per cpu caching is realized using slabs of objects instead
1061           of queues of objects. SLUB can use memory efficiently
1062           and has enhanced diagnostics. SLUB is the default choice for
1063           a slab allocator.
1064
1065config SLOB
1066        depends on EMBEDDED
1067        bool "SLOB (Simple Allocator)"
1068        help
1069           SLOB replaces the stock allocator with a drastically simpler
1070           allocator. SLOB is generally more space efficient but
1071           does not perform as well on large systems.
1072
1073endchoice
1074
1075config MMAP_ALLOW_UNINITIALIZED
1076        bool "Allow mmapped anonymous memory to be uninitialized"
1077        depends on EMBEDDED && !MMU
1078        default n
1079        help
1080          Normally, and according to the Linux spec, anonymous memory obtained
1081          from mmap() has it's contents cleared before it is passed to
1082          userspace.  Enabling this config option allows you to request that
1083          mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus
1084          providing a huge performance boost.  If this option is not enabled,
1085          then the flag will be ignored.
1086
1087          This is taken advantage of by uClibc's malloc(), and also by
1088          ELF-FDPIC binfmt's brk and stack allocator.
1089
1090          Because of the obvious security issues, this option should only be
1091          enabled on embedded devices where you control what is run in
1092          userspace.  Since that isn't generally a problem on no-MMU systems,
1093          it is normally safe to say Y here.
1094
1095          See Documentation/nommu-mmap.txt for more information.
1096
1097config PROFILING
1098        bool "Profiling support"
1099        help
1100          Say Y here to enable the extended profiling support mechanisms used
1101          by profilers such as OProfile.
1102
1103#
1104# Place an empty function call at each tracepoint site. Can be
1105# dynamically changed for a probe function.
1106#
1107config TRACEPOINTS
1108        bool
1109
1110source "arch/Kconfig"
1111
1112config SLOW_WORK
1113        default n
1114        bool
1115        help
1116          The slow work thread pool provides a number of dynamically allocated
1117          threads that can be used by the kernel to perform operations that
1118          take a relatively long time.
1119
1120          An example of this would be CacheFiles doing a path lookup followed
1121          by a series of mkdirs and a create call, all of which have to touch
1122          disk.
1123
1124          See Documentation/slow-work.txt.
1125
1126config SLOW_WORK_DEBUG
1127        bool "Slow work debugging through debugfs"
1128        default n
1129        depends on SLOW_WORK && DEBUG_FS
1130        help
1131          Display the contents of the slow work run queue through debugfs,
1132          including items currently executing.
1133
1134          See Documentation/slow-work.txt.
1135
1136endmenu         # General setup
1137
1138config HAVE_GENERIC_DMA_COHERENT
1139        bool
1140        default n
1141
1142config SLABINFO
1143        bool
1144        depends on PROC_FS
1145        depends on SLAB || SLUB_DEBUG
1146        default y
1147
1148config RT_MUTEXES
1149        boolean
1150
1151config BASE_SMALL
1152        int
1153        default 0 if BASE_FULL
1154        default 1 if !BASE_FULL
1155
1156menuconfig MODULES
1157        bool "Enable loadable module support"
1158        help
1159          Kernel modules are small pieces of compiled code which can
1160          be inserted in the running kernel, rather than being
1161          permanently built into the kernel.  You use the "modprobe"
1162          tool to add (and sometimes remove) them.  If you say Y here,
1163          many parts of the kernel can be built as modules (by
1164          answering M instead of Y where indicated): this is most
1165          useful for infrequently used options which are not required
1166          for booting.  For more information, see the man pages for
1167          modprobe, lsmod, modinfo, insmod and rmmod.
1168
1169          If you say Y here, you will need to run "make
1170          modules_install" to put the modules under /lib/modules/
1171          where modprobe can find them (you may need to be root to do
1172          this).
1173
1174          If unsure, say Y.
1175
1176if MODULES
1177
1178config MODULE_FORCE_LOAD
1179        bool "Forced module loading"
1180        default n
1181        help
1182          Allow loading of modules without version information (ie. modprobe
1183          --force).  Forced module loading sets the 'F' (forced) taint flag and
1184          is usually a really bad idea.
1185
1186config MODULE_UNLOAD
1187        bool "Module unloading"
1188        help
1189          Without this option you will not be able to unload any
1190          modules (note that some modules may not be unloadable
1191          anyway), which makes your kernel smaller, faster
1192          and simpler.  If unsure, say Y.
1193
1194config MODULE_FORCE_UNLOAD
1195        bool "Forced module unloading"
1196        depends on MODULE_UNLOAD && EXPERIMENTAL
1197        help
1198          This option allows you to force a module to unload, even if the
1199          kernel believes it is unsafe: the kernel will remove the module
1200          without waiting for anyone to stop using it (using the -f option to
1201          rmmod).  This is mainly for kernel developers and desperate users.
1202          If unsure, say N.
1203
1204config MODVERSIONS
1205        bool "Module versioning support"
1206        help
1207          Usually, you have to use modules compiled with your kernel.
1208          Saying Y here makes it sometimes possible to use modules
1209          compiled for different kernels, by adding enough information
1210          to the modules to (hopefully) spot any changes which would
1211          make them incompatible with the kernel you are running.  If
1212          unsure, say N.
1213
1214config MODULE_SRCVERSION_ALL
1215        bool "Source checksum for all modules"
1216        help
1217          Modules which contain a MODULE_VERSION get an extra "srcversion"
1218          field inserted into their modinfo section, which contains a
1219          sum of the source files which made it.  This helps maintainers
1220          see exactly which source was used to build a module (since
1221          others sometimes change the module source without updating
1222          the version).  With this option, such a "srcversion" field
1223          will be created for all modules.  If unsure, say N.
1224
1225endif # MODULES
1226
1227config INIT_ALL_POSSIBLE
1228        bool
1229        help
1230          Back when each arch used to define their own cpu_online_map and
1231          cpu_possible_map, some of them chose to initialize cpu_possible_map
1232          with all 1s, and others with all 0s.  When they were centralised,
1233          it was better to provide this option than to break all the archs
1234          and have several arch maintainers pursuing me down dark alleys.
1235
1236config STOP_MACHINE
1237        bool
1238        default y
1239        depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
1240        help
1241          Need stop_machine() primitive.
1242
1243source "block/Kconfig"
1244
1245config PREEMPT_NOTIFIERS
1246        bool
1247
1248config PADATA
1249        depends on SMP
1250        bool
1251
1252source "kernel/Kconfig.locks"
1253
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.