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