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 19menu "General setup" 20 21config EXPERIMENTAL 22 bool "Prompt for development and/or incomplete code/drivers" 23 ---help--- 24 Some of the various things that Linux supports (such as network 25 drivers, file systems, network protocols, etc.) can be in a state 26 of development where the functionality, stability, or the level of 27 testing is not yet high enough for general use. This is usually 28 known as the "alpha-test" phase among developers. If a feature is 29 currently in alpha-test, then the developers usually discourage 30 uninformed widespread use of this feature by the general public to 31 avoid "Why doesn't this work?" type mail messages. However, active 32 testing and use of these systems is welcomed. Just be aware that it 33 may not meet the normal level of reliability or it may fail to work 34 in some special cases. Detailed bug reports from people familiar 35 with the kernel internals are usually welcomed by the developers 36 (before submitting bug reports, please read the documents 37 <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, 38 <file:Documentation/BUG-HUNTING>, and 39 <file:Documentation/oops-tracing.txt> in the kernel source). 40 41 This option will also make obsoleted drivers available. These are 42 drivers that have been replaced by something else, and/or are 43 scheduled to be removed in a future kernel release. 44 45 Unless you intend to help test and develop a feature or driver that 46 falls into this category, or you have a situation that requires 47 using these features, you should probably say N here, which will 48 cause the configurator to present you with fewer choices. If 49 you say Y here, you will be offered the choice of using features or 50 drivers that are currently considered to be in the alpha-test phase. 51 52config BROKEN 53 bool 54 55config BROKEN_ON_SMP 56 bool 57 depends on BROKEN || !SMP 58 default y 59 60config LOCK_KERNEL 61 bool 62 depends on SMP || PREEMPT 63 default y 64 65config INIT_ENV_ARG_LIMIT 66 int 67 default 32 if !UML 68 default 128 if UML 69 help 70 Maximum of each of the number of arguments and environment 71 variables passed to init from the kernel command line. 72 73 74config LOCALVERSION 75 string "Local version - append to kernel release" 76 help 77 Append an extra string to the end of your kernel version. 78 This will show up when you type uname, for example. 79 The string you set here will be appended after the contents of 80 any files with a filename matching localversion* in your 81 object and source tree, in that order. Your total string can 82 be a maximum of 64 characters. 83 84config LOCALVERSION_AUTO 85 bool "Automatically append version information to the version string" 86 default y 87 help 88 This will try to automatically determine if the current tree is a 89 release tree by looking for git tags that belong to the current 90 top of tree revision. 91 92 A string of the format -gxxxxxxxx will be added to the localversion 93 if a git-based tree is found. The string generated by this will be 94 appended after any matching localversion* files, and after the value 95 set in CONFIG_LOCALVERSION. 96 97 (The actual string used here is the first eight characters produced 98 by running the command: 99 100 $ git rev-parse --verify HEAD 101 102 which is done within the script "scripts/setlocalversion".) 103 104config SWAP 105 bool "Support for paging of anonymous memory (swap)" 106 depends on MMU && BLOCK 107 default y 108 help 109 This option allows you to choose whether you want to have support 110 for so called swap devices or swap files in your kernel that are 111 used to provide more virtual memory than the actual RAM present 112 in your computer. If unsure say Y. 113 114config SYSVIPC 115 bool "System V IPC" 116 ---help--- 117 Inter Process Communication is a suite of library functions and 118 system calls which let processes (running programs) synchronize and 119 exchange information. It is generally considered to be a good thing, 120 and some programs won't run unless you say Y here. In particular, if 121 you want to run the DOS emulator dosemu under Linux (read the 122 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), 123 you'll need to say Y here. 124 125 You can find documentation about IPC with "info ipc" and also in 126 section 6.4 of the Linux Programmer's Guide, available from 127 <http://www.tldp.org/guides.html>. 128 129config SYSVIPC_SYSCTL 130 bool 131 depends on SYSVIPC 132 depends on SYSCTL 133 default y 134 135config POSIX_MQUEUE 136 bool "POSIX Message Queues" 137 depends on NET && EXPERIMENTAL 138 ---help--- 139 POSIX variant of message queues is a part of IPC. In POSIX message 140 queues every message has a priority which decides about succession 141 of receiving it by a process. If you want to compile and run 142 programs written e.g. for Solaris with use of its POSIX message 143 queues (functions mq_*) say Y here. 144 145 POSIX message queues are visible as a filesystem called 'mqueue' 146 and can be mounted somewhere if you want to do filesystem 147 operations on message queues. 148 149 If unsure, say Y. 150 151config BSD_PROCESS_ACCT 152 bool "BSD Process Accounting" 153 help 154 If you say Y here, a user level program will be able to instruct the 155 kernel (via a special system call) to write process accounting 156 information to a file: whenever a process exits, information about 157 that process will be appended to the file by the kernel. The 158 information includes things such as creation time, owning user, 159 command name, memory usage, controlling terminal etc. (the complete 160 list is in the struct acct in <file:include/linux/acct.h>). It is 161 up to the user level program to do useful things with this 162 information. This is generally a good idea, so say Y. 163 164config BSD_PROCESS_ACCT_V3 165 bool "BSD Process Accounting version 3 file format" 166 depends on BSD_PROCESS_ACCT 167 default n 168 help 169 If you say Y here, the process accounting information is written 170 in a new file format that also logs the process IDs of each 171 process and it's parent. Note that this file format is incompatible 172 with previous v0/v1/v2 file formats, so you will need updated tools 173 for processing it. A preliminary version of these tools is available 174 at <http://www.gnu.org/software/acct/>. 175 176config TASKSTATS 177 bool "Export task/process statistics through netlink (EXPERIMENTAL)" 178 depends on NET 179 default n 180 help 181 Export selected statistics for tasks/processes through the 182 generic netlink interface. Unlike BSD process accounting, the 183 statistics are available during the lifetime of tasks/processes as 184 responses to commands. Like BSD accounting, they are sent to user 185 space on task exit. 186 187 Say N if unsure. 188 189config TASK_DELAY_ACCT 190 bool "Enable per-task delay accounting (EXPERIMENTAL)" 191 depends on TASKSTATS 192 help 193 Collect information on time spent by a task waiting for system 194 resources like cpu, synchronous block I/O completion and swapping 195 in pages. Such statistics can help in setting a task's priorities 196 relative to other tasks for cpu, io, rss limits etc. 197 198 Say N if unsure. 199 200config TASK_XACCT 201 bool "Enable extended accounting over taskstats (EXPERIMENTAL)" 202 depends on TASKSTATS 203 help 204 Collect extended task accounting data and send the data 205 to userland for processing over the taskstats interface. 206 207 Say N if unsure. 208 209config TASK_IO_ACCOUNTING 210 bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" 211 depends on TASK_XACCT 212 help 213 Collect information on the number of bytes of storage I/O which this 214 task has caused. 215 216 Say N if unsure. 217 218config AUDIT 219 bool "Auditing support" 220 depends on NET 221 help 222 Enable auditing infrastructure that can be used with another 223 kernel subsystem, such as SELinux (which requires this for 224 logging of avc messages output). Does not do system-call 225 auditing without CONFIG_AUDITSYSCALL. 226 227config AUDITSYSCALL 228 bool "Enable system-call auditing support" 229 depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64|| SUPERH) 230 default y if SECURITY_SELINUX 231 help 232 Enable low-overhead system-call auditing infrastructure that 233 can be used independently or with another kernel subsystem, 234 such as SELinux. To use audit's filesystem watch feature, please 235 ensure that INOTIFY is configured. 236 237config AUDIT_TREE 238 def_bool y 239 depends on AUDITSYSCALL && INOTIFY 240 241config IKCONFIG 242 tristate "Kernel .config support" 243 ---help--- 244 This option enables the complete Linux kernel ".config" file 245 contents to be saved in the kernel. It provides documentation 246 of which kernel options are used in a running kernel or in an 247 on-disk kernel. This information can be extracted from the kernel 248 image file with the script scripts/extract-ikconfig and used as 249 input to rebuild the current kernel or to build another kernel. 250 It can also be extracted from a running kernel by reading 251 /proc/config.gz if enabled (below). 252 253config IKCONFIG_PROC 254 bool "Enable access to .config through /proc/config.gz" 255 depends on IKCONFIG && PROC_FS 256 ---help--- 257 This option enables access to the kernel configuration file 258 through /proc/config.gz. 259 260config LOG_BUF_SHIFT 261 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" 262 range 12 21 263 default 17 264 help 265 Select kernel log buffer size as a power of 2. 266 Examples: 267 17 => 128 KB 268 16 => 64 KB 269 15 => 32 KB 270 14 => 16 KB 271 13 => 8 KB 272 12 => 4 KB 273 274config CGROUPS 275 bool "Control Group support" 276 help 277 This option will let you use process cgroup subsystems 278 such as Cpusets 279 280 Say N if unsure. 281 282config CGROUP_DEBUG 283 bool "Example debug cgroup subsystem" 284 depends on CGROUPS 285 default n 286 help 287 This option enables a simple cgroup subsystem that 288 exports useful debugging information about the cgroups 289 framework 290 291 Say N if unsure 292 293config CGROUP_NS 294 bool "Namespace cgroup subsystem" 295 depends on CGROUPS 296 help 297 Provides a simple namespace cgroup subsystem to 298 provide hierarchical naming of sets of namespaces, 299 for instance virtual servers and checkpoint/restart 300 jobs. 301 302config CGROUP_FREEZER 303 bool "control group freezer subsystem" 304 depends on CGROUPS 305 help 306 Provides a way to freeze and unfreeze all tasks in a 307 cgroup. 308 309config CGROUP_DEVICE 310 bool "Device controller for cgroups" 311 depends on CGROUPS && EXPERIMENTAL 312 help 313 Provides a cgroup implementing whitelists for devices which 314 a process in the cgroup can mknod or open. 315 316config CPUSETS 317 bool "Cpuset support" 318 depends on SMP && CGROUPS 319 help 320 This option will let you create and manage CPUSETs which 321 allow dynamically partitioning a system into sets of CPUs and 322 Memory Nodes and assigning tasks to run only within those sets. 323 This is primarily useful on large SMP or NUMA systems. 324 325 Say N if unsure. 326 327# 328# Architectures with an unreliable sched_clock() should select this: 329# 330config HAVE_UNSTABLE_SCHED_CLOCK 331 bool 332 333config GROUP_SCHED 334 bool "Group CPU scheduler" 335 depends on EXPERIMENTAL 336 default n 337 help 338 This feature lets CPU scheduler recognize task groups and control CPU 339 bandwidth allocation to such task groups. 340 341config FAIR_GROUP_SCHED 342 bool "Group scheduling for SCHED_OTHER" 343 depends on GROUP_SCHED 344 default GROUP_SCHED 345 346config RT_GROUP_SCHED 347 bool "Group scheduling for SCHED_RR/FIFO" 348 depends on EXPERIMENTAL 349 depends on GROUP_SCHED 350 default n 351 help 352 This feature lets you explicitly allocate real CPU bandwidth 353 to users or control groups (depending on the "Basis for grouping tasks" 354 setting below. If enabled, it will also make it impossible to 355 schedule realtime tasks for non-root users until you allocate 356 realtime bandwidth for them. 357 See Documentation/scheduler/sched-rt-group.txt for more information. 358 359choice 360 depends on GROUP_SCHED 361 prompt "Basis for grouping tasks" 362 default USER_SCHED 363 364config USER_SCHED 365 bool "user id" 366 help 367 This option will choose userid as the basis for grouping 368 tasks, thus providing equal CPU bandwidth to each user. 369 370config CGROUP_SCHED 371 bool "Control groups" 372 depends on CGROUPS 373 help 374 This option allows you to create arbitrary task groups 375 using the "cgroup" pseudo filesystem and control 376 the cpu bandwidth allocated to each such task group. 377 Refer to Documentation/cgroups.txt for more information 378 on "cgroup" pseudo filesystem. 379 380endchoice 381 382config CGROUP_CPUACCT 383 bool "Simple CPU accounting cgroup subsystem" 384 depends on CGROUPS 385 help 386 Provides a simple Resource Controller for monitoring the 387 total CPU consumed by the tasks in a cgroup 388 389config RESOURCE_COUNTERS 390 bool "Resource counters" 391 help 392 This option enables controller independent resource accounting 393 infrastructure that works with cgroups 394 depends on CGROUPS 395 396config MM_OWNER 397 bool 398 399config CGROUP_MEM_RES_CTLR 400 bool "Memory Resource Controller for Control Groups" 401 depends on CGROUPS && RESOURCE_COUNTERS 402 select MM_OWNER 403 help 404 Provides a memory resource controller that manages both anonymous 405 memory and page cache. (See Documentation/controllers/memory.txt) 406 407 Note that setting this option increases fixed memory overhead 408 associated with each page of memory in the system. By this, 409 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory 410 usage tracking struct at boot. Total amount of this is printed out 411 at boot. 412 413 Only enable when you're ok with these trade offs and really 414 sure you need the memory resource controller. Even when you enable 415 this, you can set "cgroup_disable=memory" at your boot option to 416 disable memory resource controller and you can avoid overheads. 417 (and lose benefits of memory resource contoller) 418 419 This config option also selects MM_OWNER config option, which 420 could in turn add some fork/exit overhead. 421 422config SYSFS_DEPRECATED 423 bool 424 425config SYSFS_DEPRECATED_V2 426 bool "Create deprecated sysfs files" 427 depends on SYSFS 428 default y 429 select SYSFS_DEPRECATED 430 help 431 This option creates deprecated symlinks such as the 432 "device"-link, the <subsystem>:<name>-link, and the 433 "bus"-link. It may also add deprecated key in the 434 uevent environment. 435 None of these features or values should be used today, as 436 they export driver core implementation details to userspace 437 or export properties which can't be kept stable across kernel 438 releases. 439 440 If enabled, this option will also move any device structures 441 that belong to a class, back into the /sys/class hierarchy, in 442 order to support older versions of udev and some userspace 443 programs. 444 445 If you are using a distro with the most recent userspace 446 packages, it should be safe to say N here. 447 448config PROC_PID_CPUSET 449 bool "Include legacy /proc/<pid>/cpuset file" 450 depends on CPUSETS 451 default y 452 453config RELAY 454 bool "Kernel->user space relay support (formerly relayfs)" 455 help 456 This option enables support for relay interface support in 457 certain file systems (such as debugfs). 458 It is designed to provide an efficient mechanism for tools and 459 facilities to relay large amounts of data from kernel space to 460 user space. 461 462 If unsure, say N. 463 464config NAMESPACES 465 bool "Namespaces support" if EMBEDDED 466 default !EMBEDDED 467 help 468 Provides the way to make tasks work with different objects using 469 the same id. For example same IPC id may refer to different objects 470 or same user id or pid may refer to different tasks when used in 471 different namespaces. 472 473config UTS_NS 474 bool "UTS namespace" 475 depends on NAMESPACES 476 help 477 In this namespace tasks see different info provided with the 478 uname() system call 479 480config IPC_NS 481 bool "IPC namespace" 482 depends on NAMESPACES && SYSVIPC 483 help 484 In this namespace tasks work with IPC ids which correspond to 485 different IPC objects in different namespaces 486 487config USER_NS 488 bool "User namespace (EXPERIMENTAL)" 489 depends on NAMESPACES && EXPERIMENTAL 490 help 491 This allows containers, i.e. vservers, to use user namespaces 492 to provide different user info for different servers. 493 If unsure, say N. 494 495config PID_NS 496 bool "PID Namespaces (EXPERIMENTAL)" 497 default n 498 depends on NAMESPACES && EXPERIMENTAL 499 help 500 Support process id namespaces. This allows having multiple 501 process with the same pid as long as they are in different 502 pid namespaces. This is a building block of containers. 503 504 Unless you want to work with an experimental feature 505 say N here. 506 507config BLK_DEV_INITRD 508 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 509 depends on BROKEN || !FRV 510 help 511 The initial RAM filesystem is a ramfs which is loaded by the 512 boot loader (loadlin or lilo) and that is mounted as root 513 before the normal boot procedure. It is typically used to 514 load modules needed to mount the "real" root file system, 515 etc. See <file:Documentation/initrd.txt> for details. 516 517 If RAM disk support (BLK_DEV_RAM) is also included, this 518 also enables initial RAM disk (initrd) support and adds 519 15 Kbytes (more on some other architectures) to the kernel size. 520 521 If unsure say Y. 522 523if BLK_DEV_INITRD 524 525source "usr/Kconfig" 526 527endif 528 529config CC_OPTIMIZE_FOR_SIZE 530 bool "Optimize for size" 531 default y 532 help 533 Enabling this option will pass "-Os" instead of "-O2" to gcc 534 resulting in a smaller kernel. 535 536 If unsure, say Y. 537 538config SYSCTL 539 bool 540 541menuconfig EMBEDDED 542 bool "Configure standard kernel features (for small systems)" 543 help 544 This option allows certain base kernel options and settings 545 to be disabled or tweaked. This is for specialized 546 environments which can tolerate a "non-standard" kernel. 547 Only use this if you really know what you are doing. 548 549config UID16 550 bool "Enable 16-bit UID system calls" if EMBEDDED 551 depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) 552 default y 553 help 554 This enables the legacy 16-bit UID syscall wrappers. 555 556config SYSCTL_SYSCALL 557 bool "Sysctl syscall support" if EMBEDDED 558 default y 559 select SYSCTL 560 ---help--- 561 sys_sysctl uses binary paths that have been found challenging 562 to properly maintain and use. The interface in /proc/sys 563 using paths with ascii names is now the primary path to this 564 information. 565 566 Almost nothing using the binary sysctl interface so if you are 567 trying to save some space it is probably safe to disable this, 568 making your kernel marginally smaller. 569 570 If unsure say Y here. 571 572config KALLSYMS 573 bool "Load all symbols for debugging/ksymoops" if EMBEDDED 574 default y 575 help 576 Say Y here to let the kernel print out symbolic crash information and 577 symbolic stack backtraces. This increases the size of the kernel 578 somewhat, as all symbols have to be loaded into the kernel image. 579 580config KALLSYMS_ALL 581 bool "Include all symbols in kallsyms" 582 depends on DEBUG_KERNEL && KALLSYMS 583 help 584 Normally kallsyms only contains the symbols of functions, for nicer 585 OOPS messages. Some debuggers can use kallsyms for other 586 symbols too: say Y here to include all symbols, if you need them 587 and you don't care about adding 300k to the size of your kernel. 588 589 Say N. 590 591config KALLSYMS_STRIP_GENERATED 592 bool "Strip machine generated symbols from kallsyms" 593 depends on KALLSYMS_ALL 594 default y 595 help 596 Say N if you want kallsyms to retain even machine generated symbols. 597 598config KALLSYMS_EXTRA_PASS 599 bool "Do an extra kallsyms pass" 600 depends on KALLSYMS 601 help 602 If kallsyms is not working correctly, the build will fail with 603 inconsistent kallsyms data. If that occurs, log a bug report and 604 turn on KALLSYMS_EXTRA_PASS which should result in a stable build. 605 Always say N here unless you find a bug in kallsyms, which must be 606 reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while 607 you wait for kallsyms to be fixed. 608 609 610config HOTPLUG 611 bool "Support for hot-pluggable devices" if EMBEDDED 612 default y 613 help 614 This option is provided for the case where no hotplug or uevent 615 capabilities is wanted by the kernel. You should only consider 616 disabling this option for embedded systems that do not use modules, a 617 dynamic /dev tree, or dynamic device discovery. Just say Y. 618 619config PRINTK 620 default y 621 bool "Enable support for printk" if EMBEDDED 622 help 623 This option enables normal printk support. Removing it 624 eliminates most of the message strings from the kernel image 625 and makes the kernel more or less silent. As this makes it 626 very difficult to diagnose system problems, saying N here is 627 strongly discouraged. 628 629config BUG 630 bool "BUG() support" if EMBEDDED 631 default y 632 help 633 Disabling this option eliminates support for BUG and WARN, reducing 634 the size of your kernel image and potentially quietly ignoring 635 numerous fatal conditions. You should only consider disabling this 636 option for embedded systems with no facilities for reporting errors. 637 Just say Y. 638 639config ELF_CORE 640 default y 641 bool "Enable ELF core dumps" if EMBEDDED 642 help 643 Enable support for generating core dumps. Disabling saves about 4k. 644 645config PCSPKR_PLATFORM 646 bool "Enable PC-Speaker support" if EMBEDDED 647 depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES 648 default y 649 help 650 This option allows to disable the internal PC-Speaker 651 support, saving some memory. 652 653config COMPAT_BRK 654 bool "Disable heap randomization" 655 default y 656 help 657 Randomizing heap placement makes heap exploits harder, but it 658 also breaks ancient binaries (including anything libc5 based). 659 This option changes the bootup default to heap randomization 660 disabled, and can be overriden runtime by setting 661 /proc/sys/kernel/randomize_va_space to 2. 662 663 On non-ancient distros (post-2000 ones) N is usually a safe choice. 664 665config BASE_FULL 666 default y 667 bool "Enable full-sized data structures for core" if EMBEDDED 668 help 669 Disabling this option reduces the size of miscellaneous core 670 kernel data structures. This saves memory on small machines, 671 but may reduce performance. 672 673config FUTEX 674 bool "Enable futex support" if EMBEDDED 675 default y 676 select RT_MUTEXES 677 help 678 Disabling this option will cause the kernel to be built without 679 support for "fast userspace mutexes". The resulting kernel may not 680 run glibc-based applications correctly. 681 682config ANON_INODES 683 bool 684 685config EPOLL 686 bool "Enable eventpoll support" if EMBEDDED 687 default y 688 select ANON_INODES 689 help 690 Disabling this option will cause the kernel to be built without 691 support for epoll family of system calls. 692 693config SIGNALFD 694 bool "Enable signalfd() system call" if EMBEDDED 695 select ANON_INODES 696 default y 697 help 698 Enable the signalfd() system call that allows to receive signals 699 on a file descriptor. 700 701 If unsure, say Y. 702 703config TIMERFD 704 bool "Enable timerfd() system call" if EMBEDDED 705 select ANON_INODES 706 default y 707 help 708 Enable the timerfd() system call that allows to receive timer 709 events on a file descriptor. 710 711 If unsure, say Y. 712 713config EVENTFD 714 bool "Enable eventfd() system call" if EMBEDDED 715 select ANON_INODES 716 default y 717 help 718 Enable the eventfd() system call that allows to receive both 719 kernel notification (ie. KAIO) or userspace notifications. 720 721 If unsure, say Y. 722 723config SHMEM 724 bool "Use full shmem filesystem" if EMBEDDED 725 default y 726 depends on MMU 727 help 728 The shmem is an internal filesystem used to manage shared memory. 729 It is backed by swap and manages resource limits. It is also exported 730 to userspace as tmpfs if TMPFS is enabled. Disabling this 731 option replaces shmem and tmpfs with the much simpler ramfs code, 732 which may be appropriate on small systems without swap. 733 734config AIO 735 bool "Enable AIO support" if EMBEDDED 736 default y 737 help 738 This option enables POSIX asynchronous I/O which may by used 739 by some high performance threaded applications. Disabling 740 this option saves about 7k. 741 742config VM_EVENT_COUNTERS 743 default y 744 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED 745 help 746 VM event counters are needed for event counts to be shown. 747 This option allows the disabling of the VM event counters 748 on EMBEDDED systems. /proc/vmstat will only show page counts 749 if VM event counters are disabled. 750 751config PCI_QUIRKS 752 default y 753 bool "Enable PCI quirk workarounds" if EMBEDDED 754 depends on PCI 755 help 756 This enables workarounds for various PCI chipset 757 bugs/quirks. Disable this only if your target machine is 758 unaffected by PCI quirks. 759 760config SLUB_DEBUG 761 default y 762 bool "Enable SLUB debugging support" if EMBEDDED 763 depends on SLUB && SYSFS 764 help 765 SLUB has extensive debug support features. Disabling these can 766 result in significant savings in code size. This also disables 767 SLUB sysfs support. /sys/slab will not exist and there will be 768 no support for cache validation etc. 769 770choice 771 prompt "Choose SLAB allocator" 772 default SLUB 773 help 774 This option allows to select a slab allocator. 775 776config SLAB 777 bool "SLAB" 778 help 779 The regular slab allocator that is established and known to work 780 well in all environments. It organizes cache hot objects in 781 per cpu and per node queues. 782 783config SLUB 784 bool "SLUB (Unqueued Allocator)" 785 help 786 SLUB is a slab allocator that minimizes cache line usage 787 instead of managing queues of cached objects (SLAB approach). 788 Per cpu caching is realized using slabs of objects instead 789 of queues of objects. SLUB can use memory efficiently 790 and has enhanced diagnostics. SLUB is the default choice for 791 a slab allocator. 792 793config SLOB 794 depends on EMBEDDED 795 bool "SLOB (Simple Allocator)" 796 help 797 SLOB replaces the stock allocator with a drastically simpler 798 allocator. SLOB is generally more space efficient but 799 does not perform as well on large systems. 800 801endchoice 802 803config PROFILING 804 bool "Profiling support (EXPERIMENTAL)" 805 help 806 Say Y here to enable the extended profiling support mechanisms used 807 by profilers such as OProfile. 808 809# 810# Place an empty function call at each tracepoint site. Can be 811# dynamically changed for a probe function. 812# 813config TRACEPOINTS 814 bool 815 816config MARKERS 817 bool "Activate markers" 818 depends on TRACEPOINTS 819 help 820 Place an empty function call at each marker site. Can be 821 dynamically changed for a probe function. 822 823source "arch/Kconfig" 824 825endmenu # General setup 826 827config HAVE_GENERIC_DMA_COHERENT 828 bool 829 default n 830 831config SLABINFO 832 bool 833 depends on PROC_FS 834 depends on SLAB || SLUB_DEBUG 835 default y 836 837config RT_MUTEXES 838 boolean 839 select PLIST 840 841config BASE_SMALL 842 int 843 default 0 if BASE_FULL 844 default 1 if !BASE_FULL 845 846menuconfig MODULES 847 bool "Enable loadable module support" 848 help 849 Kernel modules are small pieces of compiled code which can 850 be inserted in the running kernel, rather than being 851 permanently built into the kernel. You use the "modprobe" 852 tool to add (and sometimes remove) them. If you say Y here, 853 many parts of the kernel can be built as modules (by 854 answering M instead of Y where indicated): this is most 855 useful for infrequently used options which are not required 856 for booting. For more information, see the man pages for 857 modprobe, lsmod, modinfo, insmod and rmmod. 858 859 If you say Y here, you will need to run "make 860 modules_install" to put the modules under /lib/modules/ 861 where modprobe can find them (you may need to be root to do 862 this). 863 864 If unsure, say Y. 865 866if MODULES 867 868config MODULE_FORCE_LOAD 869 bool "Forced module loading" 870 default n 871 help 872 Allow loading of modules without version information (ie. modprobe 873 --force). Forced module loading sets the 'F' (forced) taint flag and 874 is usually a really bad idea. 875 876config MODULE_UNLOAD 877 bool "Module unloading" 878 help 879 Without this option you will not be able to unload any 880 modules (note that some modules may not be unloadable 881 anyway), which makes your kernel smaller, faster 882 and simpler. If unsure, say Y. 883 884config MODULE_FORCE_UNLOAD 885 bool "Forced module unloading" 886 depends on MODULE_UNLOAD && EXPERIMENTAL 887 help 888 This option allows you to force a module to unload, even if the 889 kernel believes it is unsafe: the kernel will remove the module 890 without waiting for anyone to stop using it (using the -f option to 891 rmmod). This is mainly for kernel developers and desperate users. 892 If unsure, say N. 893 894config MODVERSIONS 895 bool "Module versioning support" 896 help 897 Usually, you have to use modules compiled with your kernel. 898 Saying Y here makes it sometimes possible to use modules 899 compiled for different kernels, by adding enough information 900 to the modules to (hopefully) spot any changes which would 901 make them incompatible with the kernel you are running. If 902 unsure, say N. 903 904config MODULE_SRCVERSION_ALL 905 bool "Source checksum for all modules" 906 help 907 Modules which contain a MODULE_VERSION get an extra "srcversion" 908 field inserted into their modinfo section, which contains a 909 sum of the source files which made it. This helps maintainers 910 see exactly which source was used to build a module (since 911 others sometimes change the module source without updating 912 the version). With this option, such a "srcversion" field 913 will be created for all modules. If unsure, say N. 914 915endif # MODULES 916 917config INIT_ALL_POSSIBLE 918 bool 919 help 920 Back when each arch used to define their own cpu_online_map and 921 cpu_possible_map, some of them chose to initialize cpu_possible_map 922 with all 1s, and others with all 0s. When they were centralised, 923 it was better to provide this option than to break all the archs 924 and have several arch maintainers persuing me down dark alleys. 925 926config STOP_MACHINE 927 bool 928 default y 929 depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU 930 help 931 Need stop_machine() primitive. 932 933source "block/Kconfig" 934 935config PREEMPT_NOTIFIERS 936 bool 937 938choice 939 prompt "RCU Implementation" 940 default CLASSIC_RCU 941 942config CLASSIC_RCU 943 bool "Classic RCU" 944 help 945 This option selects the classic RCU implementation that is 946 designed for best read-side performance on non-realtime 947 systems. 948 949 Select this option if you are unsure. 950 951config TREE_RCU 952 bool "Tree-based hierarchical RCU" 953 help 954 This option selects the RCU implementation that is 955 designed for very large SMP system with hundreds or 956 thousands of CPUs. 957 958config PREEMPT_RCU 959 bool "Preemptible RCU" 960 depends on PREEMPT 961 help 962 This option reduces the latency of the kernel by making certain 963 RCU sections preemptible. Normally RCU code is non-preemptible, if 964 this option is selected then read-only RCU sections become 965 preemptible. This helps latency, but may expose bugs due to 966 now-naive assumptions about each RCU read-side critical section 967 remaining on a given CPU through its execution. 968 969endchoice 970 971config RCU_TRACE 972 bool "Enable tracing for RCU" 973 depends on TREE_RCU || PREEMPT_RCU 974 help 975 This option provides tracing in RCU which presents stats 976 in debugfs for debugging RCU implementation. 977 978 Say Y here if you want to enable RCU tracing 979 Say N if you are unsure. 980 981config RCU_FANOUT 982 int "Tree-based hierarchical RCU fanout value" 983 range 2 64 if 64BIT 984 range 2 32 if !64BIT 985 depends on TREE_RCU 986 default 64 if 64BIT 987 default 32 if !64BIT 988 help 989 This option controls the fanout of hierarchical implementations 990 of RCU, allowing RCU to work efficiently on machines with 991 large numbers of CPUs. This value must be at least the cube 992 root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit 993 systems and up to 262,144 for 64-bit systems. 994 995 Select a specific number if testing RCU itself. 996 Take the default if unsure. 997 998config RCU_FANOUT_EXACT 999 bool "Disable tree-based hierarchical RCU auto-balancing" 1000 depends on TREE_RCU 1001 default n 1002 help 1003 This option forces use of the exact RCU_FANOUT value specified, 1004 regardless of imbalances in the hierarchy. This is useful for 1005 testing RCU itself, and might one day be useful on systems with 1006 strong NUMA behavior. 1007 1008 Without RCU_FANOUT_EXACT, the code will balance the hierarchy. 1009 1010 Say N if unsure. 1011 1012config TREE_RCU_TRACE 1013 def_bool RCU_TRACE && TREE_RCU 1014 select DEBUG_FS 1015 help 1016 This option provides tracing for the TREE_RCU implementation, 1017 permitting Makefile to trivially select kernel/rcutree_trace.c. 1018 1019config PREEMPT_RCU_TRACE 1020 def_bool RCU_TRACE && PREEMPT_RCU 1021 select DEBUG_FS 1022 help 1023 This option provides tracing for the PREEMPT_RCU implementation, 1024 permitting Makefile to trivially select kernel/rcupreempt_trace.c. 1025