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 23config IRQ_WORK 24 bool 25 26config BUILDTIME_EXTABLE_SORT 27 bool 28 29config THREAD_INFO_IN_TASK 30 bool 31 help 32 Select this to move thread_info off the stack into task_struct. To 33 make this work, an arch will need to remove all thread_info fields 34 except flags and fix any runtime bugs. 35 36 One subtle change that will be needed is to use try_get_task_stack() 37 and put_task_stack() in save_thread_stack_tsk() and get_wchan(). 38 39menu "General setup" 40 41config BROKEN 42 bool 43 44config BROKEN_ON_SMP 45 bool 46 depends on BROKEN || !SMP 47 default y 48 49config INIT_ENV_ARG_LIMIT 50 int 51 default 32 if !UML 52 default 128 if UML 53 help 54 Maximum of each of the number of arguments and environment 55 variables passed to init from the kernel command line. 56 57 58config CROSS_COMPILE 59 string "Cross-compiler tool prefix" 60 help 61 Same as running 'make CROSS_COMPILE=prefix-' but stored for 62 default make runs in this kernel build directory. You don't 63 need to set this unless you want the configured kernel build 64 directory to select the cross-compiler automatically. 65 66config COMPILE_TEST 67 bool "Compile also drivers which will not load" 68 depends on HAS_IOMEM 69 help 70 Some drivers can be compiled on a different platform than they are 71 intended to be run on. Despite they cannot be loaded there (or even 72 when they load they cannot be used due to missing HW support), 73 developers still, opposing to distributors, might want to build such 74 drivers to compile-test them. 75 76 If you are a developer and want to build everything available, say Y 77 here. If you are a user/distributor, say N here to exclude useless 78 drivers to be distributed. 79 80config LOCALVERSION 81 string "Local version - append to kernel release" 82 help 83 Append an extra string to the end of your kernel version. 84 This will show up when you type uname, for example. 85 The string you set here will be appended after the contents of 86 any files with a filename matching localversion* in your 87 object and source tree, in that order. Your total string can 88 be a maximum of 64 characters. 89 90config LOCALVERSION_AUTO 91 bool "Automatically append version information to the version string" 92 default y 93 help 94 This will try to automatically determine if the current tree is a 95 release tree by looking for git tags that belong to the current 96 top of tree revision. 97 98 A string of the format -gxxxxxxxx will be added to the localversion 99 if a git-based tree is found. The string generated by this will be 100 appended after any matching localversion* files, and after the value 101 set in CONFIG_LOCALVERSION. 102 103 (The actual string used here is the first eight characters produced 104 by running the command: 105 106 $ git rev-parse --verify HEAD 107 108 which is done within the script "scripts/setlocalversion".) 109 110config HAVE_KERNEL_GZIP 111 bool 112 113config HAVE_KERNEL_BZIP2 114 bool 115 116config HAVE_KERNEL_LZMA 117 bool 118 119config HAVE_KERNEL_XZ 120 bool 121 122config HAVE_KERNEL_LZO 123 bool 124 125config HAVE_KERNEL_LZ4 126 bool 127 128choice 129 prompt "Kernel compression mode" 130 default KERNEL_GZIP 131 depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 132 help 133 The linux kernel is a kind of self-extracting executable. 134 Several compression algorithms are available, which differ 135 in efficiency, compression and decompression speed. 136 Compression speed is only relevant when building a kernel. 137 Decompression speed is relevant at each boot. 138 139 If you have any problems with bzip2 or lzma compressed 140 kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older 141 version of this functionality (bzip2 only), for 2.4, was 142 supplied by Christian Ludwig) 143 144 High compression options are mostly useful for users, who 145 are low on disk space (embedded systems), but for whom ram 146 size matters less. 147 148 If in doubt, select 'gzip' 149 150config KERNEL_GZIP 151 bool "Gzip" 152 depends on HAVE_KERNEL_GZIP 153 help 154 The old and tried gzip compression. It provides a good balance 155 between compression ratio and decompression speed. 156 157config KERNEL_BZIP2 158 bool "Bzip2" 159 depends on HAVE_KERNEL_BZIP2 160 help 161 Its compression ratio and speed is intermediate. 162 Decompression speed is slowest among the choices. The kernel 163 size is about 10% smaller with bzip2, in comparison to gzip. 164 Bzip2 uses a large amount of memory. For modern kernels you 165 will need at least 8MB RAM or more for booting. 166 167config KERNEL_LZMA 168 bool "LZMA" 169 depends on HAVE_KERNEL_LZMA 170 help 171 This compression algorithm's ratio is best. Decompression speed 172 is between gzip and bzip2. Compression is slowest. 173 The kernel size is about 33% smaller with LZMA in comparison to gzip. 174 175config KERNEL_XZ 176 bool "XZ" 177 depends on HAVE_KERNEL_XZ 178 help 179 XZ uses the LZMA2 algorithm and instruction set specific 180 BCJ filters which can improve compression ratio of executable 181 code. The size of the kernel is about 30% smaller with XZ in 182 comparison to gzip. On architectures for which there is a BCJ 183 filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ 184 will create a few percent smaller kernel than plain LZMA. 185 186 The speed is about the same as with LZMA: The decompression 187 speed of XZ is better than that of bzip2 but worse than gzip 188 and LZO. Compression is slow. 189 190config KERNEL_LZO 191 bool "LZO" 192 depends on HAVE_KERNEL_LZO 193 help 194 Its compression ratio is the poorest among the choices. The kernel 195 size is about 10% bigger than gzip; however its speed 196 (both compression and decompression) is the fastest. 197 198config KERNEL_LZ4 199 bool "LZ4" 200 depends on HAVE_KERNEL_LZ4 201 help 202 LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding. 203 A preliminary version of LZ4 de/compression tool is available at 204 <https://code.google.com/p/lz4/>. 205 206 Its compression ratio is worse than LZO. The size of the kernel 207 is about 8% bigger than LZO. But the decompression speed is 208 faster than LZO. 209 210endchoice 211 212config DEFAULT_HOSTNAME 213 string "Default hostname" 214 default "(none)" 215 help 216 This option determines the default system hostname before userspace 217 calls sethostname(2). The kernel traditionally uses "(none)" here, 218 but you may wish to use a different default here to make a minimal 219 system more usable with less configuration. 220 221config SWAP 222 bool "Support for paging of anonymous memory (swap)" 223 depends on MMU && BLOCK 224 default y 225 help 226 This option allows you to choose whether you want to have support 227 for so called swap devices or swap files in your kernel that are 228 used to provide more virtual memory than the actual RAM present 229 in your computer. If unsure say Y. 230 231config SYSVIPC 232 bool "System V IPC" 233 ---help--- 234 Inter Process Communication is a suite of library functions and 235 system calls which let processes (running programs) synchronize and 236 exchange information. It is generally considered to be a good thing, 237 and some programs won't run unless you say Y here. In particular, if 238 you want to run the DOS emulator dosemu under Linux (read the 239 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), 240 you'll need to say Y here. 241 242 You can find documentation about IPC with "info ipc" and also in 243 section 6.4 of the Linux Programmer's Guide, available from 244 <http://www.tldp.org/guides.html>. 245 246config SYSVIPC_SYSCTL 247 bool 248 depends on SYSVIPC 249 depends on SYSCTL 250 default y 251 252config POSIX_MQUEUE 253 bool "POSIX Message Queues" 254 depends on NET 255 ---help--- 256 POSIX variant of message queues is a part of IPC. In POSIX message 257 queues every message has a priority which decides about succession 258 of receiving it by a process. If you want to compile and run 259 programs written e.g. for Solaris with use of its POSIX message 260 queues (functions mq_*) say Y here. 261 262 POSIX message queues are visible as a filesystem called 'mqueue' 263 and can be mounted somewhere if you want to do filesystem 264 operations on message queues. 265 266 If unsure, say Y. 267 268config POSIX_MQUEUE_SYSCTL 269 bool 270 depends on POSIX_MQUEUE 271 depends on SYSCTL 272 default y 273 274config CROSS_MEMORY_ATTACH 275 bool "Enable process_vm_readv/writev syscalls" 276 depends on MMU 277 default y 278 help 279 Enabling this option adds the system calls process_vm_readv and 280 process_vm_writev which allow a process with the correct privileges 281 to directly read from or write to another process' address space. 282 See the man page for more details. 283 284config FHANDLE 285 bool "open by fhandle syscalls" 286 select EXPORTFS 287 help 288 If you say Y here, a user level program will be able to map 289 file names to handle and then later use the handle for 290 different file system operations. This is useful in implementing 291 userspace file servers, which now track files using handles instead 292 of names. The handle would remain the same even if file names 293 get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2) 294 syscalls. 295 296config USELIB 297 bool "uselib syscall" 298 default y 299 help 300 This option enables the uselib syscall, a system call used in the 301 dynamic linker from libc5 and earlier. glibc does not use this 302 system call. If you intend to run programs built on libc5 or 303 earlier, you may need to enable this syscall. Current systems 304 running glibc can safely disable this. 305 306config AUDIT 307 bool "Auditing support" 308 depends on NET 309 help 310 Enable auditing infrastructure that can be used with another 311 kernel subsystem, such as SELinux (which requires this for 312 logging of avc messages output). Does not do system-call 313 auditing without CONFIG_AUDITSYSCALL. 314 315config HAVE_ARCH_AUDITSYSCALL 316 bool 317 318config AUDITSYSCALL 319 bool "Enable system-call auditing support" 320 depends on AUDIT && HAVE_ARCH_AUDITSYSCALL 321 default y if SECURITY_SELINUX 322 help 323 Enable low-overhead system-call auditing infrastructure that 324 can be used independently or with another kernel subsystem, 325 such as SELinux. 326 327config AUDIT_WATCH 328 def_bool y 329 depends on AUDITSYSCALL 330 select FSNOTIFY 331 332config AUDIT_TREE 333 def_bool y 334 depends on AUDITSYSCALL 335 select FSNOTIFY 336 337source "kernel/irq/Kconfig" 338source "kernel/time/Kconfig" 339 340menu "CPU/Task time and stats accounting" 341 342config VIRT_CPU_ACCOUNTING 343 bool 344 345choice 346 prompt "Cputime accounting" 347 default TICK_CPU_ACCOUNTING if !PPC64 348 default VIRT_CPU_ACCOUNTING_NATIVE if PPC64 349 350# Kind of a stub config for the pure tick based cputime accounting 351config TICK_CPU_ACCOUNTING 352 bool "Simple tick based cputime accounting" 353 depends on !S390 && !NO_HZ_FULL 354 help 355 This is the basic tick based cputime accounting that maintains 356 statistics about user, system and idle time spent on per jiffies 357 granularity. 358 359 If unsure, say Y. 360 361config VIRT_CPU_ACCOUNTING_NATIVE 362 bool "Deterministic task and CPU time accounting" 363 depends on HAVE_VIRT_CPU_ACCOUNTING && !NO_HZ_FULL 364 select VIRT_CPU_ACCOUNTING 365 help 366 Select this option to enable more accurate task and CPU time 367 accounting. This is done by reading a CPU counter on each 368 kernel entry and exit and on transitions within the kernel 369 between system, softirq and hardirq state, so there is a 370 small performance impact. In the case of s390 or IBM POWER > 5, 371 this also enables accounting of stolen time on logically-partitioned 372 systems. 373 374config VIRT_CPU_ACCOUNTING_GEN 375 bool "Full dynticks CPU time accounting" 376 depends on HAVE_CONTEXT_TRACKING 377 depends on HAVE_VIRT_CPU_ACCOUNTING_GEN 378 select VIRT_CPU_ACCOUNTING 379 select CONTEXT_TRACKING 380 help 381 Select this option to enable task and CPU time accounting on full 382 dynticks systems. This accounting is implemented by watching every 383 kernel-user boundaries using the context tracking subsystem. 384 The accounting is thus performed at the expense of some significant 385 overhead. 386 387 For now this is only useful if you are working on the full 388 dynticks subsystem development. 389 390 If unsure, say N. 391 392config IRQ_TIME_ACCOUNTING 393 bool "Fine granularity task level IRQ time accounting" 394 depends on HAVE_IRQ_TIME_ACCOUNTING && !NO_HZ_FULL 395 help 396 Select this option to enable fine granularity task irq time 397 accounting. This is done by reading a timestamp on each 398 transitions between softirq and hardirq state, so there can be a 399 small performance impact. 400 401 If in doubt, say N here. 402 403endchoice 404 405config SCHED_WALT 406 bool "Support window based load tracking" 407 depends on SMP 408 depends on FAIR_GROUP_SCHED 409 help 410 This feature will allow the scheduler to maintain a tunable window 411 based set of metrics for tasks and runqueues. These metrics can be 412 used to guide task placement as well as task frequency requirements 413 for cpufreq governors. 414 415config BSD_PROCESS_ACCT 416 bool "BSD Process Accounting" 417 depends on MULTIUSER 418 help 419 If you say Y here, a user level program will be able to instruct the 420 kernel (via a special system call) to write process accounting 421 information to a file: whenever a process exits, information about 422 that process will be appended to the file by the kernel. The 423 information includes things such as creation time, owning user, 424 command name, memory usage, controlling terminal etc. (the complete 425 list is in the struct acct in <file:include/linux/acct.h>). It is 426 up to the user level program to do useful things with this 427 information. This is generally a good idea, so say Y. 428 429config BSD_PROCESS_ACCT_V3 430 bool "BSD Process Accounting version 3 file format" 431 depends on BSD_PROCESS_ACCT 432 default n 433 help 434 If you say Y here, the process accounting information is written 435 in a new file format that also logs the process IDs of each 436 process and it's parent. Note that this file format is incompatible 437 with previous v0/v1/v2 file formats, so you will need updated tools 438 for processing it. A preliminary version of these tools is available 439 at <http://www.gnu.org/software/acct/>. 440 441config TASKSTATS 442 bool "Export task/process statistics through netlink" 443 depends on NET 444 depends on MULTIUSER 445 default n 446 help 447 Export selected statistics for tasks/processes through the 448 generic netlink interface. Unlike BSD process accounting, the 449 statistics are available during the lifetime of tasks/processes as 450 responses to commands. Like BSD accounting, they are sent to user 451 space on task exit. 452 453 Say N if unsure. 454 455config TASK_DELAY_ACCT 456 bool "Enable per-task delay accounting" 457 depends on TASKSTATS 458 select SCHED_INFO 459 help 460 Collect information on time spent by a task waiting for system 461 resources like cpu, synchronous block I/O completion and swapping 462 in pages. Such statistics can help in setting a task's priorities 463 relative to other tasks for cpu, io, rss limits etc. 464 465 Say N if unsure. 466 467config TASK_XACCT 468 bool "Enable extended accounting over taskstats" 469 depends on TASKSTATS 470 help 471 Collect extended task accounting data and send the data 472 to userland for processing over the taskstats interface. 473 474 Say N if unsure. 475 476config TASK_IO_ACCOUNTING 477 bool "Enable per-task storage I/O accounting" 478 depends on TASK_XACCT 479 help 480 Collect information on the number of bytes of storage I/O which this 481 task has caused. 482 483 Say N if unsure. 484 485endmenu # "CPU/Task time and stats accounting" 486 487menu "RCU Subsystem" 488 489config TREE_RCU 490 bool 491 default y if !PREEMPT && SMP 492 help 493 This option selects the RCU implementation that is 494 designed for very large SMP system with hundreds or 495 thousands of CPUs. It also scales down nicely to 496 smaller systems. 497 498config PREEMPT_RCU 499 bool 500 default y if PREEMPT 501 help 502 This option selects the RCU implementation that is 503 designed for very large SMP systems with hundreds or 504 thousands of CPUs, but for which real-time response 505 is also required. It also scales down nicely to 506 smaller systems. 507 508 Select this option if you are unsure. 509 510config TINY_RCU 511 bool 512 default y if !PREEMPT && !SMP 513 help 514 This option selects the RCU implementation that is 515 designed for UP systems from which real-time response 516 is not required. This option greatly reduces the 517 memory footprint of RCU. 518 519config RCU_EXPERT 520 bool "Make expert-level adjustments to RCU configuration" 521 default n 522 help 523 This option needs to be enabled if you wish to make 524 expert-level adjustments to RCU configuration. By default, 525 no such adjustments can be made, which has the often-beneficial 526 side-effect of preventing "make oldconfig" from asking you all 527 sorts of detailed questions about how you would like numerous 528 obscure RCU options to be set up. 529 530 Say Y if you need to make expert-level adjustments to RCU. 531 532 Say N if you are unsure. 533 534config SRCU 535 bool 536 help 537 This option selects the sleepable version of RCU. This version 538 permits arbitrary sleeping or blocking within RCU read-side critical 539 sections. 540 541config TASKS_RCU 542 bool 543 default n 544 select SRCU 545 help 546 This option enables a task-based RCU implementation that uses 547 only voluntary context switch (not preemption!), idle, and 548 user-mode execution as quiescent states. 549 550config RCU_STALL_COMMON 551 def_bool ( TREE_RCU || PREEMPT_RCU || RCU_TRACE ) 552 help 553 This option enables RCU CPU stall code that is common between 554 the TINY and TREE variants of RCU. The purpose is to allow 555 the tiny variants to disable RCU CPU stall warnings, while 556 making these warnings mandatory for the tree variants. 557 558config CONTEXT_TRACKING 559 bool 560 561config CONTEXT_TRACKING_FORCE 562 bool "Force context tracking" 563 depends on CONTEXT_TRACKING 564 default y if !NO_HZ_FULL 565 help 566 The major pre-requirement for full dynticks to work is to 567 support the context tracking subsystem. But there are also 568 other dependencies to provide in order to make the full 569 dynticks working. 570 571 This option stands for testing when an arch implements the 572 context tracking backend but doesn't yet fullfill all the 573 requirements to make the full dynticks feature working. 574 Without the full dynticks, there is no way to test the support 575 for context tracking and the subsystems that rely on it: RCU 576 userspace extended quiescent state and tickless cputime 577 accounting. This option copes with the absence of the full 578 dynticks subsystem by forcing the context tracking on all 579 CPUs in the system. 580 581 Say Y only if you're working on the development of an 582 architecture backend for the context tracking. 583 584 Say N otherwise, this option brings an overhead that you 585 don't want in production. 586 587 588config RCU_FANOUT 589 int "Tree-based hierarchical RCU fanout value" 590 range 2 64 if 64BIT 591 range 2 32 if !64BIT 592 depends on (TREE_RCU || PREEMPT_RCU) && RCU_EXPERT 593 default 64 if 64BIT 594 default 32 if !64BIT 595 help 596 This option controls the fanout of hierarchical implementations 597 of RCU, allowing RCU to work efficiently on machines with 598 large numbers of CPUs. This value must be at least the fourth 599 root of NR_CPUS, which allows NR_CPUS to be insanely large. 600 The default value of RCU_FANOUT should be used for production 601 systems, but if you are stress-testing the RCU implementation 602 itself, small RCU_FANOUT values allow you to test large-system 603 code paths on small(er) systems. 604 605 Select a specific number if testing RCU itself. 606 Take the default if unsure. 607 608config RCU_FANOUT_LEAF 609 int "Tree-based hierarchical RCU leaf-level fanout value" 610 range 2 64 if 64BIT 611 range 2 32 if !64BIT 612 depends on (TREE_RCU || PREEMPT_RCU) && RCU_EXPERT 613 default 16 614 help 615 This option controls the leaf-level fanout of hierarchical 616 implementations of RCU, and allows trading off cache misses 617 against lock contention. Systems that synchronize their 618 scheduling-clock interrupts for energy-efficiency reasons will 619 want the default because the smaller leaf-level fanout keeps 620 lock contention levels acceptably low. Very large systems 621 (hundreds or thousands of CPUs) will instead want to set this 622 value to the maximum value possible in order to reduce the 623 number of cache misses incurred during RCU's grace-period 624 initialization. These systems tend to run CPU-bound, and thus 625 are not helped by synchronized interrupts, and thus tend to 626 skew them, which reduces lock contention enough that large 627 leaf-level fanouts work well. 628 629 Select a specific number if testing RCU itself. 630 631 Select the maximum permissible value for large systems. 632 633 Take the default if unsure. 634 635config RCU_FAST_NO_HZ 636 bool "Accelerate last non-dyntick-idle CPU's grace periods" 637 depends on NO_HZ_COMMON && SMP && RCU_EXPERT 638 default n 639 help 640 This option permits CPUs to enter dynticks-idle state even if 641 they have RCU callbacks queued, and prevents RCU from waking 642 these CPUs up more than roughly once every four jiffies (by 643 default, you can adjust this using the rcutree.rcu_idle_gp_delay 644 parameter), thus improving energy efficiency. On the other 645 hand, this option increases the duration of RCU grace periods, 646 for example, slowing down synchronize_rcu(). 647 648 Say Y if energy efficiency is critically important, and you 649 don't care about increased grace-period durations. 650 651 Say N if you are unsure. 652 653config TREE_RCU_TRACE 654 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU ) 655 select DEBUG_FS 656 help 657 This option provides tracing for the TREE_RCU and 658 PREEMPT_RCU implementations, permitting Makefile to 659 trivially select kernel/rcutree_trace.c. 660 661config RCU_BOOST 662 bool "Enable RCU priority boosting" 663 depends on RT_MUTEXES && PREEMPT_RCU && RCU_EXPERT 664 default n 665 help 666 This option boosts the priority of preempted RCU readers that 667 block the current preemptible RCU grace period for too long. 668 This option also prevents heavy loads from blocking RCU 669 callback invocation for all flavors of RCU. 670 671 Say Y here if you are working with real-time apps or heavy loads 672 Say N here if you are unsure. 673 674config RCU_KTHREAD_PRIO 675 int "Real-time priority to use for RCU worker threads" 676 range 1 99 if RCU_BOOST 677 range 0 99 if !RCU_BOOST 678 default 1 if RCU_BOOST 679 default 0 if !RCU_BOOST 680 depends on RCU_EXPERT 681 help 682 This option specifies the SCHED_FIFO priority value that will be 683 assigned to the rcuc/n and rcub/n threads and is also the value 684 used for RCU_BOOST (if enabled). If you are working with a 685 real-time application that has one or more CPU-bound threads 686 running at a real-time priority level, you should set 687 RCU_KTHREAD_PRIO to a priority higher than the highest-priority 688 real-time CPU-bound application thread. The default RCU_KTHREAD_PRIO 689 value of 1 is appropriate in the common case, which is real-time 690 applications that do not have any CPU-bound threads. 691 692 Some real-time applications might not have a single real-time 693 thread that saturates a given CPU, but instead might have 694 multiple real-time threads that, taken together, fully utilize 695 that CPU. In this case, you should set RCU_KTHREAD_PRIO to 696 a priority higher than the lowest-priority thread that is 697 conspiring to prevent the CPU from running any non-real-time 698 tasks. For example, if one thread at priority 10 and another 699 thread at priority 5 are between themselves fully consuming 700 the CPU time on a given CPU, then RCU_KTHREAD_PRIO should be 701 set to priority 6 or higher. 702 703 Specify the real-time priority, or take the default if unsure. 704 705config RCU_BOOST_DELAY 706 int "Milliseconds to delay boosting after RCU grace-period start" 707 range 0 3000 708 depends on RCU_BOOST 709 default 500 710 help 711 This option specifies the time to wait after the beginning of 712 a given grace period before priority-boosting preempted RCU 713 readers blocking that grace period. Note that any RCU reader 714 blocking an expedited RCU grace period is boosted immediately. 715 716 Accept the default if unsure. 717 718config RCU_NOCB_CPU 719 bool "Offload RCU callback processing from boot-selected CPUs" 720 depends on TREE_RCU || PREEMPT_RCU 721 depends on RCU_EXPERT || NO_HZ_FULL 722 default n 723 help 724 Use this option to reduce OS jitter for aggressive HPC or 725 real-time workloads. It can also be used to offload RCU 726 callback invocation to energy-efficient CPUs in battery-powered 727 asymmetric multiprocessors. 728 729 This option offloads callback invocation from the set of 730 CPUs specified at boot time by the rcu_nocbs parameter. 731 For each such CPU, a kthread ("rcuox/N") will be created to 732 invoke callbacks, where the "N" is the CPU being offloaded, 733 and where the "x" is "b" for RCU-bh, "p" for RCU-preempt, and 734 "s" for RCU-sched. Nothing prevents this kthread from running 735 on the specified CPUs, but (1) the kthreads may be preempted 736 between each callback, and (2) affinity or cgroups can be used 737 to force the kthreads to run on whatever set of CPUs is desired. 738 739 Say Y here if you want to help to debug reduced OS jitter. 740 Say N here if you are unsure. 741 742choice 743 prompt "Build-forced no-CBs CPUs" 744 default RCU_NOCB_CPU_NONE 745 depends on RCU_NOCB_CPU 746 help 747 This option allows no-CBs CPUs (whose RCU callbacks are invoked 748 from kthreads rather than from softirq context) to be specified 749 at build time. Additional no-CBs CPUs may be specified by 750 the rcu_nocbs= boot parameter. 751 752config RCU_NOCB_CPU_NONE 753 bool "No build_forced no-CBs CPUs" 754 help 755 This option does not force any of the CPUs to be no-CBs CPUs. 756 Only CPUs designated by the rcu_nocbs= boot parameter will be 757 no-CBs CPUs, whose RCU callbacks will be invoked by per-CPU 758 kthreads whose names begin with "rcuo". All other CPUs will 759 invoke their own RCU callbacks in softirq context. 760 761 Select this option if you want to choose no-CBs CPUs at 762 boot time, for example, to allow testing of different no-CBs 763 configurations without having to rebuild the kernel each time. 764 765config RCU_NOCB_CPU_ZERO 766 bool "CPU 0 is a build_forced no-CBs CPU" 767 help 768 This option forces CPU 0 to be a no-CBs CPU, so that its RCU 769 callbacks are invoked by a per-CPU kthread whose name begins 770 with "rcuo". Additional CPUs may be designated as no-CBs 771 CPUs using the rcu_nocbs= boot parameter will be no-CBs CPUs. 772 All other CPUs will invoke their own RCU callbacks in softirq 773 context. 774 775 Select this if CPU 0 needs to be a no-CBs CPU for real-time 776 or energy-efficiency reasons, but the real reason it exists 777 is to ensure that randconfig testing covers mixed systems. 778 779config RCU_NOCB_CPU_ALL 780 bool "All CPUs are build_forced no-CBs CPUs" 781 help 782 This option forces all CPUs to be no-CBs CPUs. The rcu_nocbs= 783 boot parameter will be ignored. All CPUs' RCU callbacks will 784 be executed in the context of per-CPU rcuo kthreads created for 785 this purpose. Assuming that the kthreads whose names start with 786 "rcuo" are bound to "housekeeping" CPUs, this reduces OS jitter 787 on the remaining CPUs, but might decrease memory locality during 788 RCU-callback invocation, thus potentially degrading throughput. 789 790 Select this if all CPUs need to be no-CBs CPUs for real-time 791 or energy-efficiency reasons. 792 793endchoice 794 795config RCU_EXPEDITE_BOOT 796 bool 797 default n 798 help 799 This option enables expedited grace periods at boot time, 800 as if rcu_expedite_gp() had been invoked early in boot. 801 The corresponding rcu_unexpedite_gp() is invoked from 802 rcu_end_inkernel_boot(), which is intended to be invoked 803 at the end of the kernel-only boot sequence, just before 804 init is exec'ed. 805 806 Accept the default if unsure. 807 808endmenu # "RCU Subsystem" 809 810config BUILD_BIN2C 811 bool 812 default n 813 814config IKCONFIG 815 tristate "Kernel .config support" 816 select BUILD_BIN2C 817 ---help--- 818 This option enables the complete Linux kernel ".config" file 819 contents to be saved in the kernel. It provides documentation 820 of which kernel options are used in a running kernel or in an 821 on-disk kernel. This information can be extracted from the kernel 822 image file with the script scripts/extract-ikconfig and used as 823 input to rebuild the current kernel or to build another kernel. 824 It can also be extracted from a running kernel by reading 825 /proc/config.gz if enabled (below). 826 827config IKCONFIG_PROC 828 bool "Enable access to .config through /proc/config.gz" 829 depends on IKCONFIG && PROC_FS 830 ---help--- 831 This option enables access to the kernel configuration file 832 through /proc/config.gz. 833 834config LOG_BUF_SHIFT 835 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" 836 range 12 25 if !H8300 837 range 12 19 if H8300 838 default 17 839 depends on PRINTK 840 help 841 Select the minimal kernel log buffer size as a power of 2. 842 The final size is affected by LOG_CPU_MAX_BUF_SHIFT config 843 parameter, see below. Any higher size also might be forced 844 by "log_buf_len" boot parameter. 845 846 Examples: 847 17 => 128 KB 848 16 => 64 KB 849 15 => 32 KB 850 14 => 16 KB 851 13 => 8 KB 852 12 => 4 KB 853 854config LOG_CPU_MAX_BUF_SHIFT 855 int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)" 856 depends on SMP 857 range 0 21 858 default 12 if !BASE_SMALL 859 default 0 if BASE_SMALL 860 depends on PRINTK 861 help 862 This option allows to increase the default ring buffer size 863 according to the number of CPUs. The value defines the contribution 864 of each CPU as a power of 2. The used space is typically only few 865 lines however it might be much more when problems are reported, 866 e.g. backtraces. 867 868 The increased size means that a new buffer has to be allocated and 869 the original static one is unused. It makes sense only on systems 870 with more CPUs. Therefore this value is used only when the sum of 871 contributions is greater than the half of the default kernel ring 872 buffer as defined by LOG_BUF_SHIFT. The default values are set 873 so that more than 64 CPUs are needed to trigger the allocation. 874 875 Also this option is ignored when "log_buf_len" kernel parameter is 876 used as it forces an exact (power of two) size of the ring buffer. 877 878 The number of possible CPUs is used for this computation ignoring 879 hotplugging making the compuation optimal for the the worst case 880 scenerio while allowing a simple algorithm to be used from bootup. 881 882 Examples shift values and their meaning: 883 17 => 128 KB for each CPU 884 16 => 64 KB for each CPU 885 15 => 32 KB for each CPU 886 14 => 16 KB for each CPU 887 13 => 8 KB for each CPU 888 12 => 4 KB for each CPU 889 890# 891# Architectures with an unreliable sched_clock() should select this: 892# 893config HAVE_UNSTABLE_SCHED_CLOCK 894 bool 895 896config GENERIC_SCHED_CLOCK 897 bool 898 899# 900# For architectures that want to enable the support for NUMA-affine scheduler 901# balancing logic: 902# 903config ARCH_SUPPORTS_NUMA_BALANCING 904 bool 905 906# 907# For architectures that prefer to flush all TLBs after a number of pages 908# are unmapped instead of sending one IPI per page to flush. The architecture 909# must provide guarantees on what happens if a clean TLB cache entry is 910# written after the unmap. Details are in mm/rmap.c near the check for 911# should_defer_flush. The architecture should also consider if the full flush 912# and the refill costs are offset by the savings of sending fewer IPIs. 913config ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH 914 bool 915 916# 917# For architectures that know their GCC __int128 support is sound 918# 919config ARCH_SUPPORTS_INT128 920 bool 921 922# For architectures that (ab)use NUMA to represent different memory regions 923# all cpu-local but of different latencies, such as SuperH. 924# 925config ARCH_WANT_NUMA_VARIABLE_LOCALITY 926 bool 927 928config NUMA_BALANCING 929 bool "Memory placement aware NUMA scheduler" 930 depends on ARCH_SUPPORTS_NUMA_BALANCING 931 depends on !ARCH_WANT_NUMA_VARIABLE_LOCALITY 932 depends on SMP && NUMA && MIGRATION 933 help 934 This option adds support for automatic NUMA aware memory/task placement. 935 The mechanism is quite primitive and is based on migrating memory when 936 it has references to the node the task is running on. 937 938 This system will be inactive on UMA systems. 939 940config NUMA_BALANCING_DEFAULT_ENABLED 941 bool "Automatically enable NUMA aware memory/task placement" 942 default y 943 depends on NUMA_BALANCING 944 help 945 If set, automatic NUMA balancing will be enabled if running on a NUMA 946 machine. 947 948menuconfig CGROUPS 949 bool "Control Group support" 950 select KERNFS 951 help 952 This option adds support for grouping sets of processes together, for 953 use with process control subsystems such as Cpusets, CFS, memory 954 controls or device isolation. 955 See 956 - Documentation/scheduler/sched-design-CFS.txt (CFS) 957 - Documentation/cgroups/ (features for grouping, isolation 958 and resource control) 959 960 Say N if unsure. 961 962if CGROUPS 963 964config CGROUP_DEBUG 965 bool "Example debug cgroup subsystem" 966 default n 967 help 968 This option enables a simple cgroup subsystem that 969 exports useful debugging information about the cgroups 970 framework. 971 972 Say N if unsure. 973 974config CGROUP_FREEZER 975 bool "Freezer cgroup subsystem" 976 help 977 Provides a way to freeze and unfreeze all tasks in a 978 cgroup. 979 980config CGROUP_PIDS 981 bool "PIDs cgroup subsystem" 982 help 983 Provides enforcement of process number limits in the scope of a 984 cgroup. Any attempt to fork more processes than is allowed in the 985 cgroup will fail. PIDs are fundamentally a global resource because it 986 is fairly trivial to reach PID exhaustion before you reach even a 987 conservative kmemcg limit. As a result, it is possible to grind a 988 system to halt without being limited by other cgroup policies. The 989 PIDs cgroup subsystem is designed to stop this from happening. 990 991 It should be noted that organisational operations (such as attaching 992 to a cgroup hierarchy will *not* be blocked by the PIDs subsystem), 993 since the PIDs limit only affects a process's ability to fork, not to 994 attach to a cgroup. 995 996config CGROUP_DEVICE 997 bool "Device controller for cgroups" 998 help 999 Provides a cgroup implementing whitelists for devices which 1000 a process in the cgroup can mknod or open. 1001 1002config CPUSETS 1003 bool "Cpuset support" 1004 help 1005 This option will let you create and manage CPUSETs which 1006 allow dynamically partitioning a system into sets of CPUs and 1007 Memory Nodes and assigning tasks to run only within those sets. 1008 This is primarily useful on large SMP or NUMA systems. 1009 1010 Say N if unsure. 1011 1012config PROC_PID_CPUSET 1013 bool "Include legacy /proc/<pid>/cpuset file" 1014 depends on CPUSETS 1015 default y 1016 1017config CGROUP_CPUACCT 1018 bool "Simple CPU accounting cgroup subsystem" 1019 help 1020 Provides a simple Resource Controller for monitoring the 1021 total CPU consumed by the tasks in a cgroup. 1022 1023config CGROUP_SCHEDTUNE 1024 bool "CFS tasks boosting cgroup subsystem (EXPERIMENTAL)" 1025 depends on SCHED_TUNE 1026 help 1027 This option provides the "schedtune" controller which improves the 1028 flexibility of the task boosting mechanism by introducing the support 1029 to define "per task" boost values. 1030 1031 This new controller: 1032 1. allows only a two layers hierarchy, where the root defines the 1033 system-wide boost value and its direct childrens define each one a 1034 different "class of tasks" to be boosted with a different value 1035 2. supports up to 16 different task classes, each one which could be 1036 configured with a different boost value 1037 1038 Say N if unsure. 1039 1040config PAGE_COUNTER 1041 bool 1042 1043config MEMCG 1044 bool "Memory Resource Controller for Control Groups" 1045 select PAGE_COUNTER 1046 select EVENTFD 1047 help 1048 Provides a memory resource controller that manages both anonymous 1049 memory and page cache. (See Documentation/cgroups/memory.txt) 1050 1051config MEMCG_SWAP 1052 bool "Memory Resource Controller Swap Extension" 1053 depends on MEMCG && SWAP 1054 help 1055 Add swap management feature to memory resource controller. When you 1056 enable this, you can limit mem+swap usage per cgroup. In other words, 1057 when you disable this, memory resource controller has no cares to 1058 usage of swap...a process can exhaust all of the swap. This extension 1059 is useful when you want to avoid exhaustion swap but this itself 1060 adds more overheads and consumes memory for remembering information. 1061 Especially if you use 32bit system or small memory system, please 1062 be careful about enabling this. When memory resource controller 1063 is disabled by boot option, this will be automatically disabled and 1064 there will be no overhead from this. Even when you set this config=y, 1065 if boot option "swapaccount=0" is set, swap will not be accounted. 1066 Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page 1067 size is 4096bytes, 512k per 1Gbytes of swap. 1068config MEMCG_SWAP_ENABLED 1069 bool "Memory Resource Controller Swap Extension enabled by default" 1070 depends on MEMCG_SWAP 1071 default y 1072 help 1073 Memory Resource Controller Swap Extension comes with its price in 1074 a bigger memory consumption. General purpose distribution kernels 1075 which want to enable the feature but keep it disabled by default 1076 and let the user enable it by swapaccount=1 boot command line 1077 parameter should have this option unselected. 1078 For those who want to have the feature enabled by default should 1079 select this option (if, for some reason, they need to disable it 1080 then swapaccount=0 does the trick). 1081config MEMCG_KMEM 1082 bool "Memory Resource Controller Kernel Memory accounting" 1083 depends on MEMCG 1084 depends on SLUB || SLAB 1085 help 1086 The Kernel Memory extension for Memory Resource Controller can limit 1087 the amount of memory used by kernel objects in the system. Those are 1088 fundamentally different from the entities handled by the standard 1089 Memory Controller, which are page-based, and can be swapped. Users of 1090 the kmem extension can use it to guarantee that no group of processes 1091 will ever exhaust kernel resources alone. 1092 1093config CGROUP_HUGETLB 1094 bool "HugeTLB Resource Controller for Control Groups" 1095 depends on HUGETLB_PAGE 1096 select PAGE_COUNTER 1097 default n 1098 help 1099 Provides a cgroup Resource Controller for HugeTLB pages. 1100 When you enable this, you can put a per cgroup limit on HugeTLB usage. 1101 The limit is enforced during page fault. Since HugeTLB doesn't 1102 support page reclaim, enforcing the limit at page fault time implies 1103 that, the application will get SIGBUS signal if it tries to access 1104 HugeTLB pages beyond its limit. This requires the application to know 1105 beforehand how much HugeTLB pages it would require for its use. The 1106 control group is tracked in the third page lru pointer. This means 1107 that we cannot use the controller with huge page less than 3 pages. 1108 1109config CGROUP_PERF 1110 bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" 1111 depends on PERF_EVENTS && CGROUPS 1112 help 1113 This option extends the per-cpu mode to restrict monitoring to 1114 threads which belong to the cgroup specified and run on the 1115 designated cpu. 1116 1117 Say N if unsure. 1118 1119menuconfig CGROUP_SCHED 1120 bool "Group CPU scheduler" 1121 default n 1122 help 1123 This feature lets CPU scheduler recognize task groups and control CPU 1124 bandwidth allocation to such task groups. It uses cgroups to group 1125 tasks. 1126 1127if CGROUP_SCHED 1128config FAIR_GROUP_SCHED 1129 bool "Group scheduling for SCHED_OTHER" 1130 depends on CGROUP_SCHED 1131 default CGROUP_SCHED 1132 1133config CFS_BANDWIDTH 1134 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" 1135 depends on FAIR_GROUP_SCHED 1136 depends on !SCHED_WALT 1137 default n 1138 help 1139 This option allows users to define CPU bandwidth rates (limits) for 1140 tasks running within the fair group scheduler. Groups with no limit 1141 set are considered to be unconstrained and will run with no 1142 restriction. 1143 See tip/Documentation/scheduler/sched-bwc.txt for more information. 1144 1145config RT_GROUP_SCHED 1146 bool "Group scheduling for SCHED_RR/FIFO" 1147 depends on CGROUP_SCHED 1148 default n 1149 help 1150 This feature lets you explicitly allocate real CPU bandwidth 1151 to task groups. If enabled, it will also make it impossible to 1152 schedule realtime tasks for non-root users until you allocate 1153 realtime bandwidth for them. 1154 See Documentation/scheduler/sched-rt-group.txt for more information. 1155 1156endif #CGROUP_SCHED 1157 1158config BLK_CGROUP 1159 bool "Block IO controller" 1160 depends on BLOCK 1161 default n 1162 ---help--- 1163 Generic block IO controller cgroup interface. This is the common 1164 cgroup interface which should be used by various IO controlling 1165 policies. 1166 1167 Currently, CFQ IO scheduler uses it to recognize task groups and 1168 control disk bandwidth allocation (proportional time slice allocation) 1169 to such task groups. It is also used by bio throttling logic in 1170 block layer to implement upper limit in IO rates on a device. 1171 1172 This option only enables generic Block IO controller infrastructure. 1173 One needs to also enable actual IO controlling logic/policy. For 1174 enabling proportional weight division of disk bandwidth in CFQ, set 1175 CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set 1176 CONFIG_BLK_DEV_THROTTLING=y. 1177 1178 See Documentation/cgroups/blkio-controller.txt for more information. 1179 1180config DEBUG_BLK_CGROUP 1181 bool "Enable Block IO controller debugging" 1182 depends on BLK_CGROUP 1183 default n 1184 ---help--- 1185 Enable some debugging help. Currently it exports additional stat 1186 files in a cgroup which can be useful for debugging. 1187 1188config CGROUP_WRITEBACK 1189 bool 1190 depends on MEMCG && BLK_CGROUP 1191 default y 1192 1193endif # CGROUPS 1194 1195config CHECKPOINT_RESTORE 1196 bool "Checkpoint/restore support" if EXPERT 1197 select PROC_CHILDREN 1198 default n 1199 help 1200 Enables additional kernel features in a sake of checkpoint/restore. 1201 In particular it adds auxiliary prctl codes to setup process text, 1202 data and heap segment sizes, and a few additional /proc filesystem 1203 entries. 1204 1205 If unsure, say N here. 1206 1207menuconfig NAMESPACES 1208 bool "Namespaces support" if EXPERT 1209 depends on MULTIUSER 1210 default !EXPERT 1211 help 1212 Provides the way to make tasks work with different objects using 1213 the same id. For example same IPC id may refer to different objects 1214 or same user id or pid may refer to different tasks when used in 1215 different namespaces. 1216 1217if NAMESPACES 1218 1219config UTS_NS 1220 bool "UTS namespace" 1221 default y 1222 help 1223 In this namespace tasks see different info provided with the 1224 uname() system call 1225 1226config IPC_NS 1227 bool "IPC namespace" 1228 depends on (SYSVIPC || POSIX_MQUEUE) 1229 default y 1230 help 1231 In this namespace tasks work with IPC ids which correspond to 1232 different IPC objects in different namespaces. 1233 1234config USER_NS 1235 bool "User namespace" 1236 default n 1237 help 1238 This allows containers, i.e. vservers, to use user namespaces 1239 to provide different user info for different servers. 1240 1241 When user namespaces are enabled in the kernel it is 1242 recommended that the MEMCG and MEMCG_KMEM options also be 1243 enabled and that user-space use the memory control groups to 1244 limit the amount of memory a memory unprivileged users can 1245 use. 1246 1247 If unsure, say N. 1248 1249config PID_NS 1250 bool "PID Namespaces" 1251 default y 1252 help 1253 Support process id namespaces. This allows having multiple 1254 processes with the same pid as long as they are in different 1255 pid namespaces. This is a building block of containers. 1256 1257config NET_NS 1258 bool "Network namespace" 1259 depends on NET 1260 default y 1261 help 1262 Allow user space to create what appear to be multiple instances 1263 of the network stack. 1264 1265endif # NAMESPACES 1266 1267config SCHED_AUTOGROUP 1268 bool "Automatic process group scheduling" 1269 select CGROUPS 1270 select CGROUP_SCHED 1271 select FAIR_GROUP_SCHED 1272 help 1273 This option optimizes the scheduler for common desktop workloads by 1274 automatically creating and populating task groups. This separation 1275 of workloads isolates aggressive CPU burners (like build jobs) from 1276 desktop applications. Task group autogeneration is currently based 1277 upon task session. 1278 1279config SCHED_TUNE 1280 bool "Boosting for CFS tasks (EXPERIMENTAL)" 1281 depends on SMP 1282 help 1283 This option enables the system-wide support for task boosting. 1284 When this support is enabled a new sysctl interface is exposed to 1285 userspace via: 1286 /proc/sys/kernel/sched_cfs_boost 1287 which allows to set a system-wide boost value in range [0..100]. 1288 1289 The currently boosting strategy is implemented in such a way that: 1290 - a 0% boost value requires to operate in "standard" mode by 1291 scheduling all tasks at the minimum capacities required by their 1292 workload demand 1293 - a 100% boost value requires to push at maximum the task 1294 performances, "regardless" of the incurred energy consumption 1295 1296 A boost value in between these two boundaries is used to bias the 1297 power/performance trade-off, the higher the boost value the more the 1298 scheduler is biased toward performance boosting instead of energy 1299 efficiency. 1300 1301 Since this support exposes a single system-wide knob, the specified 1302 boost value is applied to all (CFS) tasks in the system. 1303 1304 If unsure, say N. 1305 1306config DEFAULT_USE_ENERGY_AWARE 1307 bool "Default to enabling the Energy Aware Scheduler feature" 1308 default n 1309 help 1310 This option defaults the ENERGY_AWARE scheduling feature to true, 1311 as without SCHED_DEBUG set this feature can't be enabled or disabled 1312 via sysctl. 1313 1314 Say N if unsure. 1315 1316config SYSFS_DEPRECATED 1317 bool "Enable deprecated sysfs features to support old userspace tools" 1318 depends on SYSFS 1319 default n 1320 help 1321 This option adds code that switches the layout of the "block" class 1322 devices, to not show up in /sys/class/block/, but only in 1323 /sys/block/. 1324 1325 This switch is only active when the sysfs.deprecated=1 boot option is 1326 passed or the SYSFS_DEPRECATED_V2 option is set. 1327 1328 This option allows new kernels to run on old distributions and tools, 1329 which might get confused by /sys/class/block/. Since 2007/2008 all 1330 major distributions and tools handle this just fine. 1331 1332 Recent distributions and userspace tools after 2009/2010 depend on 1333 the existence of /sys/class/block/, and will not work with this 1334 option enabled. 1335 1336 Only if you are using a new kernel on an old distribution, you might 1337 need to say Y here. 1338 1339config SYSFS_DEPRECATED_V2 1340 bool "Enable deprecated sysfs features by default" 1341 default n 1342 depends on SYSFS 1343 depends on SYSFS_DEPRECATED 1344 help 1345 Enable deprecated sysfs by default. 1346 1347 See the CONFIG_SYSFS_DEPRECATED option for more details about this 1348 option. 1349 1350 Only if you are using a new kernel on an old distribution, you might 1351 need to say Y here. Even then, odds are you would not need it 1352 enabled, you can always pass the boot option if absolutely necessary. 1353 1354config RELAY 1355 bool "Kernel->user space relay support (formerly relayfs)" 1356 help 1357 This option enables support for relay interface support in 1358 certain file systems (such as debugfs). 1359 It is designed to provide an efficient mechanism for tools and 1360 facilities to relay large amounts of data from kernel space to 1361 user space. 1362 1363 If unsure, say N. 1364 1365config BLK_DEV_INITRD 1366 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 1367 depends on BROKEN || !FRV 1368 help 1369 The initial RAM filesystem is a ramfs which is loaded by the 1370 boot loader (loadlin or lilo) and that is mounted as root 1371 before the normal boot procedure. It is typically used to 1372 load modules needed to mount the "real" root file system, 1373 etc. See <file:Documentation/initrd.txt> for details. 1374 1375 If RAM disk support (BLK_DEV_RAM) is also included, this 1376 also enables initial RAM disk (initrd) support and adds 1377 15 Kbytes (more on some other architectures) to the kernel size. 1378 1379 If unsure say Y. 1380 1381if BLK_DEV_INITRD 1382 1383source "usr/Kconfig" 1384 1385endif 1386 1387choice 1388 prompt "Compiler optimization level" 1389 default CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE 1390 1391config CC_OPTIMIZE_FOR_PERFORMANCE 1392 bool "Optimize for performance" 1393 help 1394 This is the default optimization level for the kernel, building 1395 with the "-O2" compiler flag for best performance and most 1396 helpful compile-time warnings. 1397 1398config CC_OPTIMIZE_FOR_SIZE 1399 bool "Optimize for size" 1400 help 1401 Enabling this option will pass "-Os" instead of "-O2" to 1402 your compiler resulting in a smaller kernel. 1403 1404 If unsure, say N. 1405 1406endchoice 1407 1408config SYSCTL 1409 bool 1410 1411config ANON_INODES 1412 bool 1413 1414config HAVE_UID16 1415 bool 1416 1417config SYSCTL_EXCEPTION_TRACE 1418 bool 1419 help 1420 Enable support for /proc/sys/debug/exception-trace. 1421 1422config SYSCTL_ARCH_UNALIGN_NO_WARN 1423 bool 1424 help 1425 Enable support for /proc/sys/kernel/ignore-unaligned-usertrap 1426 Allows arch to define/use @no_unaligned_warning to possibly warn 1427 about unaligned access emulation going on under the hood. 1428 1429config SYSCTL_ARCH_UNALIGN_ALLOW 1430 bool 1431 help 1432 Enable support for /proc/sys/kernel/unaligned-trap 1433 Allows arches to define/use @unaligned_enabled to runtime toggle 1434 the unaligned access emulation. 1435 see arch/parisc/kernel/unaligned.c for reference 1436 1437config HAVE_PCSPKR_PLATFORM 1438 bool 1439 1440# interpreter that classic socket filters depend on 1441config BPF 1442 bool 1443 1444menuconfig EXPERT 1445 bool "Configure standard kernel features (expert users)" 1446 # Unhide debug options, to make the on-by-default options visible 1447 select DEBUG_KERNEL 1448 help 1449 This option allows certain base kernel options and settings 1450 to be disabled or tweaked. This is for specialized 1451 environments which can tolerate a "non-standard" kernel. 1452 Only use this if you really know what you are doing. 1453 1454config UID16 1455 bool "Enable 16-bit UID system calls" if EXPERT 1456 depends on HAVE_UID16 && MULTIUSER 1457 default y 1458 help 1459 This enables the legacy 16-bit UID syscall wrappers. 1460 1461config MULTIUSER 1462 bool "Multiple users, groups and capabilities support" if EXPERT 1463 default y 1464 help 1465 This option enables support for non-root users, groups and 1466 capabilities. 1467 1468 If you say N here, all processes will run with UID 0, GID 0, and all 1469 possible capabilities. Saying N here also compiles out support for 1470 system calls related to UIDs, GIDs, and capabilities, such as setuid, 1471 setgid, and capset. 1472 1473 If unsure, say Y here. 1474 1475config SGETMASK_SYSCALL 1476 bool "sgetmask/ssetmask syscalls support" if EXPERT 1477 def_bool PARISC || MN10300 || BLACKFIN || M68K || PPC || MIPS || X86 || SPARC || CRIS || MICROBLAZE || SUPERH 1478 ---help--- 1479 sys_sgetmask and sys_ssetmask are obsolete system calls 1480 no longer supported in libc but still enabled by default in some 1481 architectures. 1482 1483 If unsure, leave the default option here. 1484 1485config SYSFS_SYSCALL 1486 bool "Sysfs syscall support" if EXPERT 1487 default y 1488 ---help--- 1489 sys_sysfs is an obsolete system call no longer supported in libc. 1490 Note that disabling this option is more secure but might break 1491 compatibility with some systems. 1492 1493 If unsure say Y here. 1494 1495config SYSCTL_SYSCALL 1496 bool "Sysctl syscall support" if EXPERT 1497 depends on PROC_SYSCTL 1498 default n 1499 select SYSCTL 1500 ---help--- 1501 sys_sysctl uses binary paths that have been found challenging 1502 to properly maintain and use. The interface in /proc/sys 1503 using paths with ascii names is now the primary path to this 1504 information. 1505 1506 Almost nothing using the binary sysctl interface so if you are 1507 trying to save some space it is probably safe to disable this, 1508 making your kernel marginally smaller. 1509 1510 If unsure say N here. 1511 1512config KALLSYMS 1513 bool "Load all symbols for debugging/ksymoops" if EXPERT 1514 default y 1515 help 1516 Say Y here to let the kernel print out symbolic crash information and 1517 symbolic stack backtraces. This increases the size of the kernel 1518 somewhat, as all symbols have to be loaded into the kernel image. 1519 1520config KALLSYMS_ALL 1521 bool "Include all symbols in kallsyms" 1522 depends on DEBUG_KERNEL && KALLSYMS 1523 help 1524 Normally kallsyms only contains the symbols of functions for nicer 1525 OOPS messages and backtraces (i.e., symbols from the text and inittext 1526 sections). This is sufficient for most cases. And only in very rare 1527 cases (e.g., when a debugger is used) all symbols are required (e.g., 1528 names of variables from the data sections, etc). 1529 1530 This option makes sure that all symbols are loaded into the kernel 1531 image (i.e., symbols from all sections) in cost of increased kernel 1532 size (depending on the kernel configuration, it may be 300KiB or 1533 something like this). 1534 1535 Say N unless you really need all symbols. 1536 1537config PRINTK 1538 default y 1539 bool "Enable support for printk" if EXPERT 1540 select IRQ_WORK 1541 help 1542 This option enables normal printk support. Removing it 1543 eliminates most of the message strings from the kernel image 1544 and makes the kernel more or less silent. As this makes it 1545 very difficult to diagnose system problems, saying N here is 1546 strongly discouraged. 1547 1548config BUG 1549 bool "BUG() support" if EXPERT 1550 default y 1551 help 1552 Disabling this option eliminates support for BUG and WARN, reducing 1553 the size of your kernel image and potentially quietly ignoring 1554 numerous fatal conditions. You should only consider disabling this 1555 option for embedded systems with no facilities for reporting errors. 1556 Just say Y. 1557 1558config ELF_CORE 1559 depends on COREDUMP 1560 default y 1561 bool "Enable ELF core dumps" if EXPERT 1562 help 1563 Enable support for generating core dumps. Disabling saves about 4k. 1564 1565 1566config PCSPKR_PLATFORM 1567 bool "Enable PC-Speaker support" if EXPERT 1568 depends on HAVE_PCSPKR_PLATFORM 1569 select I8253_LOCK 1570 default y 1571 help 1572 This option allows to disable the internal PC-Speaker 1573 support, saving some memory. 1574 1575config BASE_FULL 1576 default y 1577 bool "Enable full-sized data structures for core" if EXPERT 1578 help 1579 Disabling this option reduces the size of miscellaneous core 1580 kernel data structures. This saves memory on small machines, 1581 but may reduce performance. 1582 1583config FUTEX 1584 bool "Enable futex support" if EXPERT 1585 default y 1586 select RT_MUTEXES 1587 help 1588 Disabling this option will cause the kernel to be built without 1589 support for "fast userspace mutexes". The resulting kernel may not 1590 run glibc-based applications correctly. 1591 1592config HAVE_FUTEX_CMPXCHG 1593 bool 1594 depends on FUTEX 1595 help 1596 Architectures should select this if futex_atomic_cmpxchg_inatomic() 1597 is implemented and always working. This removes a couple of runtime 1598 checks. 1599 1600config EPOLL 1601 bool "Enable eventpoll support" if EXPERT 1602 default y 1603 select ANON_INODES 1604 help 1605 Disabling this option will cause the kernel to be built without 1606 support for epoll family of system calls. 1607 1608config SIGNALFD 1609 bool "Enable signalfd() system call" if EXPERT 1610 select ANON_INODES 1611 default y 1612 help 1613 Enable the signalfd() system call that allows to receive signals 1614 on a file descriptor. 1615 1616 If unsure, say Y. 1617 1618config TIMERFD 1619 bool "Enable timerfd() system call" if EXPERT 1620 select ANON_INODES 1621 default y 1622 help 1623 Enable the timerfd() system call that allows to receive timer 1624 events on a file descriptor. 1625 1626 If unsure, say Y. 1627 1628config EVENTFD 1629 bool "Enable eventfd() system call" if EXPERT 1630 select ANON_INODES 1631 default y 1632 help 1633 Enable the eventfd() system call that allows to receive both 1634 kernel notification (ie. KAIO) or userspace notifications. 1635 1636 If unsure, say Y. 1637 1638# syscall, maps, verifier 1639config BPF_SYSCALL 1640 bool "Enable bpf() system call" 1641 select ANON_INODES 1642 select BPF 1643 default n 1644 help 1645 Enable the bpf() system call that allows to manipulate eBPF 1646 programs and maps via file descriptors. 1647 1648config BPF_JIT_ALWAYS_ON 1649 bool "Permanently enable BPF JIT and remove BPF interpreter" 1650 depends on BPF_SYSCALL && HAVE_EBPF_JIT && BPF_JIT 1651 help 1652 Enables BPF JIT and removes BPF interpreter to avoid 1653 speculative execution of BPF instructions by the interpreter 1654 1655config SHMEM 1656 bool "Use full shmem filesystem" if EXPERT 1657 default y 1658 depends on MMU 1659 help 1660 The shmem is an internal filesystem used to manage shared memory. 1661 It is backed by swap and manages resource limits. It is also exported 1662 to userspace as tmpfs if TMPFS is enabled. Disabling this 1663 option replaces shmem and tmpfs with the much simpler ramfs code, 1664 which may be appropriate on small systems without swap. 1665 1666config AIO 1667 bool "Enable AIO support" if EXPERT 1668 default y 1669 help 1670 This option enables POSIX asynchronous I/O which may by used 1671 by some high performance threaded applications. Disabling 1672 this option saves about 7k. 1673 1674config ADVISE_SYSCALLS 1675 bool "Enable madvise/fadvise syscalls" if EXPERT 1676 default y 1677 help 1678 This option enables the madvise and fadvise syscalls, used by 1679 applications to advise the kernel about their future memory or file 1680 usage, improving performance. If building an embedded system where no 1681 applications use these syscalls, you can disable this option to save 1682 space. 1683 1684config USERFAULTFD 1685 bool "Enable userfaultfd() system call" 1686 select ANON_INODES 1687 depends on MMU 1688 help 1689 Enable the userfaultfd() system call that allows to intercept and 1690 handle page faults in userland. 1691 1692config PCI_QUIRKS 1693 default y 1694 bool "Enable PCI quirk workarounds" if EXPERT 1695 depends on PCI 1696 help 1697 This enables workarounds for various PCI chipset 1698 bugs/quirks. Disable this only if your target machine is 1699 unaffected by PCI quirks. 1700 1701config MEMBARRIER 1702 bool "Enable membarrier() system call" if EXPERT 1703 default y 1704 help 1705 Enable the membarrier() system call that allows issuing memory 1706 barriers across all running threads, which can be used to distribute 1707 the cost of user-space memory barriers asymmetrically by transforming 1708 pairs of memory barriers into pairs consisting of membarrier() and a 1709 compiler barrier. 1710 1711 If unsure, say Y. 1712 1713config EMBEDDED 1714 bool "Embedded system" 1715 option allnoconfig_y 1716 select EXPERT 1717 help 1718 This option should be enabled if compiling the kernel for 1719 an embedded system so certain expert options are available 1720 for configuration. 1721 1722config HAVE_PERF_EVENTS 1723 bool 1724 help 1725 See tools/perf/design.txt for details. 1726 1727config PERF_USE_VMALLOC 1728 bool 1729 help 1730 See tools/perf/design.txt for details 1731 1732menu "Kernel Performance Events And Counters" 1733 1734config PERF_EVENTS 1735 bool "Kernel performance events and counters" 1736 default y if PROFILING 1737 depends on HAVE_PERF_EVENTS 1738 select ANON_INODES 1739 select IRQ_WORK 1740 select SRCU 1741 help 1742 Enable kernel support for various performance events provided 1743 by software and hardware. 1744 1745 Software events are supported either built-in or via the 1746 use of generic tracepoints. 1747 1748 Most modern CPUs support performance events via performance 1749 counter registers. These registers count the number of certain 1750 types of hw events: such as instructions executed, cachemisses 1751 suffered, or branches mis-predicted - without slowing down the 1752 kernel or applications. These registers can also trigger interrupts 1753 when a threshold number of events have passed - and can thus be 1754 used to profile the code that runs on that CPU. 1755 1756 The Linux Performance Event subsystem provides an abstraction of 1757 these software and hardware event capabilities, available via a 1758 system call and used by the "perf" utility in tools/perf/. It 1759 provides per task and per CPU counters, and it provides event 1760 capabilities on top of those. 1761 1762 Say Y if unsure. 1763 1764config DEBUG_PERF_USE_VMALLOC 1765 default n 1766 bool "Debug: use vmalloc to back perf mmap() buffers" 1767 depends on PERF_EVENTS && DEBUG_KERNEL && !PPC 1768 select PERF_USE_VMALLOC 1769 help 1770 Use vmalloc memory to back perf mmap() buffers. 1771 1772 Mostly useful for debugging the vmalloc code on platforms 1773 that don't require it. 1774 1775 Say N if unsure. 1776 1777endmenu 1778 1779config VM_EVENT_COUNTERS 1780 default y 1781 bool "Enable VM event counters for /proc/vmstat" if EXPERT 1782 help 1783 VM event counters are needed for event counts to be shown. 1784 This option allows the disabling of the VM event counters 1785 on EXPERT systems. /proc/vmstat will only show page counts 1786 if VM event counters are disabled. 1787 1788config SLUB_DEBUG 1789 default y 1790 bool "Enable SLUB debugging support" if EXPERT 1791 depends on SLUB && SYSFS 1792 help 1793 SLUB has extensive debug support features. Disabling these can 1794 result in significant savings in code size. This also disables 1795 SLUB sysfs support. /sys/slab will not exist and there will be 1796 no support for cache validation etc. 1797 1798config COMPAT_BRK 1799 bool "Disable heap randomization" 1800 default y 1801 help 1802 Randomizing heap placement makes heap exploits harder, but it 1803 also breaks ancient binaries (including anything libc5 based). 1804 This option changes the bootup default to heap randomization 1805 disabled, and can be overridden at runtime by setting 1806 /proc/sys/kernel/randomize_va_space to 2. 1807 1808 On non-ancient distros (post-2000 ones) N is usually a safe choice. 1809 1810choice 1811 prompt "Choose SLAB allocator" 1812 default SLUB 1813 help 1814 This option allows to select a slab allocator. 1815 1816config SLAB 1817 bool "SLAB" 1818 select HAVE_HARDENED_USERCOPY_ALLOCATOR 1819 help 1820 The regular slab allocator that is established and known to work 1821 well in all environments. It organizes cache hot objects in 1822 per cpu and per node queues. 1823 1824config SLUB 1825 bool "SLUB (Unqueued Allocator)" 1826 select HAVE_HARDENED_USERCOPY_ALLOCATOR 1827 help 1828 SLUB is a slab allocator that minimizes cache line usage 1829 instead of managing queues of cached objects (SLAB approach). 1830 Per cpu caching is realized using slabs of objects instead 1831 of queues of objects. SLUB can use memory efficiently 1832 and has enhanced diagnostics. SLUB is the default choice for 1833 a slab allocator. 1834 1835config SLOB 1836 depends on EXPERT 1837 bool "SLOB (Simple Allocator)" 1838 help 1839 SLOB replaces the stock allocator with a drastically simpler 1840 allocator. SLOB is generally more space efficient but 1841 does not perform as well on large systems. 1842 1843endchoice 1844 1845config SLUB_CPU_PARTIAL 1846 default y 1847 depends on SLUB && SMP 1848 bool "SLUB per cpu partial cache" 1849 help 1850 Per cpu partial caches accellerate objects allocation and freeing 1851 that is local to a processor at the price of more indeterminism 1852 in the latency of the free. On overflow these caches will be cleared 1853 which requires the taking of locks that may cause latency spikes. 1854 Typically one would choose no for a realtime system. 1855 1856config MMAP_ALLOW_UNINITIALIZED 1857 bool "Allow mmapped anonymous memory to be uninitialized" 1858 depends on EXPERT && !MMU 1859 default n 1860 help 1861 Normally, and according to the Linux spec, anonymous memory obtained 1862 from mmap() has it's contents cleared before it is passed to 1863 userspace. Enabling this config option allows you to request that 1864 mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus 1865 providing a huge performance boost. If this option is not enabled, 1866 then the flag will be ignored. 1867 1868 This is taken advantage of by uClibc's malloc(), and also by 1869 ELF-FDPIC binfmt's brk and stack allocator. 1870 1871 Because of the obvious security issues, this option should only be 1872 enabled on embedded devices where you control what is run in 1873 userspace. Since that isn't generally a problem on no-MMU systems, 1874 it is normally safe to say Y here. 1875 1876 See Documentation/nommu-mmap.txt for more information. 1877 1878config SYSTEM_DATA_VERIFICATION 1879 def_bool n 1880 select SYSTEM_TRUSTED_KEYRING 1881 select KEYS 1882 select CRYPTO 1883 select ASYMMETRIC_KEY_TYPE 1884 select ASYMMETRIC_PUBLIC_KEY_SUBTYPE 1885 select PUBLIC_KEY_ALGO_RSA 1886 select ASN1 1887 select OID_REGISTRY 1888 select X509_CERTIFICATE_PARSER 1889 select PKCS7_MESSAGE_PARSER 1890 help 1891 Provide PKCS#7 message verification using the contents of the system 1892 trusted keyring to provide public keys. This then can be used for 1893 module verification, kexec image verification and firmware blob 1894 verification. 1895 1896config PROFILING 1897 bool "Profiling support" 1898 help 1899 Say Y here to enable the extended profiling support mechanisms used 1900 by profilers such as OProfile. 1901 1902# 1903# Place an empty function call at each tracepoint site. Can be 1904# dynamically changed for a probe function. 1905# 1906config TRACEPOINTS 1907 bool 1908 1909source "arch/Kconfig" 1910 1911endmenu # General setup 1912 1913config HAVE_GENERIC_DMA_COHERENT 1914 bool 1915 default n 1916 1917config SLABINFO 1918 bool 1919 depends on PROC_FS 1920 depends on SLAB || SLUB_DEBUG 1921 default y 1922 1923config RT_MUTEXES 1924 bool 1925 1926config BASE_SMALL 1927 int 1928 default 0 if BASE_FULL 1929 default 1 if !BASE_FULL 1930 1931menuconfig MODULES 1932 bool "Enable loadable module support" 1933 option modules 1934 help 1935 Kernel modules are small pieces of compiled code which can 1936 be inserted in the running kernel, rather than being 1937 permanently built into the kernel. You use the "modprobe" 1938 tool to add (and sometimes remove) them. If you say Y here, 1939 many parts of the kernel can be built as modules (by 1940 answering M instead of Y where indicated): this is most 1941 useful for infrequently used options which are not required 1942 for booting. For more information, see the man pages for 1943 modprobe, lsmod, modinfo, insmod and rmmod. 1944 1945 If you say Y here, you will need to run "make 1946 modules_install" to put the modules under /lib/modules/ 1947 where modprobe can find them (you may need to be root to do 1948 this). 1949 1950 If unsure, say Y. 1951 1952if MODULES 1953 1954config MODULE_FORCE_LOAD 1955 bool "Forced module loading" 1956 default n 1957 help 1958 Allow loading of modules without version information (ie. modprobe 1959 --force). Forced module loading sets the 'F' (forced) taint flag and 1960 is usually a really bad idea. 1961 1962config MODULE_UNLOAD 1963 bool "Module unloading" 1964 help 1965 Without this option you will not be able to unload any 1966 modules (note that some modules may not be unloadable 1967 anyway), which makes your kernel smaller, faster 1968 and simpler. If unsure, say Y. 1969 1970config MODULE_FORCE_UNLOAD 1971 bool "Forced module unloading" 1972 depends on MODULE_UNLOAD 1973 help 1974 This option allows you to force a module to unload, even if the 1975 kernel believes it is unsafe: the kernel will remove the module 1976 without waiting for anyone to stop using it (using the -f option to 1977 rmmod). This is mainly for kernel developers and desperate users. 1978 If unsure, say N. 1979 1980config MODVERSIONS 1981 bool "Module versioning support" 1982 help 1983 Usually, you have to use modules compiled with your kernel. 1984 Saying Y here makes it sometimes possible to use modules 1985 compiled for different kernels, by adding enough information 1986 to the modules to (hopefully) spot any changes which would 1987 make them incompatible with the kernel you are running. If 1988 unsure, say N. 1989 1990config MODULE_SRCVERSION_ALL 1991 bool "Source checksum for all modules" 1992 help 1993 Modules which contain a MODULE_VERSION get an extra "srcversion" 1994 field inserted into their modinfo section, which contains a 1995 sum of the source files which made it. This helps maintainers 1996 see exactly which source was used to build a module (since 1997 others sometimes change the module source without updating 1998 the version). With this option, such a "srcversion" field 1999 will be created for all modules. If unsure, say N. 2000 2001config MODULE_SIG 2002 bool "Module signature verification" 2003 depends on MODULES 2004 select SYSTEM_DATA_VERIFICATION 2005 help 2006 Check modules for valid signatures upon load: the signature 2007 is simply appended to the module. For more information see 2008 Documentation/module-signing.txt. 2009 2010 Note that this option adds the OpenSSL development packages as a 2011 kernel build dependency so that the signing tool can use its crypto 2012 library. 2013 2014 !!!WARNING!!! If you enable this option, you MUST make sure that the 2015 module DOES NOT get stripped after being signed. This includes the 2016 debuginfo strip done by some packagers (such as rpmbuild) and 2017 inclusion into an initramfs that wants the module size reduced. 2018 2019config MODULE_SIG_FORCE 2020 bool "Require modules to be validly signed" 2021 depends on MODULE_SIG 2022 help 2023 Reject unsigned modules or signed modules for which we don't have a 2024 key. Without this, such modules will simply taint the kernel. 2025 2026config MODULE_SIG_ALL 2027 bool "Automatically sign all modules" 2028 default y 2029 depends on MODULE_SIG 2030 help 2031 Sign all modules during make modules_install. Without this option, 2032 modules must be signed manually, using the scripts/sign-file tool. 2033 2034comment "Do not forget to sign required modules with scripts/sign-file" 2035 depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL 2036 2037choice 2038 prompt "Which hash algorithm should modules be signed with?" 2039 depends on MODULE_SIG 2040 help 2041 This determines which sort of hashing algorithm will be used during 2042 signature generation. This algorithm _must_ be built into the kernel 2043 directly so that signature verification can take place. It is not 2044 possible to load a signed module containing the algorithm to check 2045 the signature on that module. 2046 2047config MODULE_SIG_SHA1 2048 bool "Sign modules with SHA-1" 2049 select CRYPTO_SHA1 2050 2051config MODULE_SIG_SHA224 2052 bool "Sign modules with SHA-224" 2053 select CRYPTO_SHA256 2054 2055config MODULE_SIG_SHA256 2056 bool "Sign modules with SHA-256" 2057 select CRYPTO_SHA256 2058 2059config MODULE_SIG_SHA384 2060 bool "Sign modules with SHA-384" 2061 select CRYPTO_SHA512 2062 2063config MODULE_SIG_SHA512 2064 bool "Sign modules with SHA-512" 2065 select CRYPTO_SHA512 2066 2067endchoice 2068 2069config MODULE_SIG_HASH 2070 string 2071 depends on MODULE_SIG 2072 default "sha1" if MODULE_SIG_SHA1 2073 default "sha224" if MODULE_SIG_SHA224 2074 default "sha256" if MODULE_SIG_SHA256 2075 default "sha384" if MODULE_SIG_SHA384 2076 default "sha512" if MODULE_SIG_SHA512 2077 2078config MODULE_COMPRESS 2079 bool "Compress modules on installation" 2080 depends on MODULES 2081 help 2082 2083 Compresses kernel modules when 'make modules_install' is run; gzip or 2084 xz depending on "Compression algorithm" below. 2085 2086 module-init-tools MAY support gzip, and kmod MAY support gzip and xz. 2087 2088 Out-of-tree kernel modules installed using Kbuild will also be 2089 compressed upon installation. 2090 2091 Note: for modules inside an initrd or initramfs, it's more efficient 2092 to compress the whole initrd or initramfs instead. 2093 2094 Note: This is fully compatible with signed modules. 2095 2096 If in doubt, say N. 2097 2098choice 2099 prompt "Compression algorithm" 2100 depends on MODULE_COMPRESS 2101 default MODULE_COMPRESS_GZIP 2102 help 2103 This determines which sort of compression will be used during 2104 'make modules_install'. 2105 2106 GZIP (default) and XZ are supported. 2107 2108config MODULE_COMPRESS_GZIP 2109 bool "GZIP" 2110 2111config MODULE_COMPRESS_XZ 2112 bool "XZ" 2113 2114endchoice 2115 2116endif # MODULES 2117 2118config MODULES_TREE_LOOKUP 2119 def_bool y 2120 depends on PERF_EVENTS || TRACING 2121 2122config INIT_ALL_POSSIBLE 2123 bool 2124 help 2125 Back when each arch used to define their own cpu_online_mask and 2126 cpu_possible_mask, some of them chose to initialize cpu_possible_mask 2127 with all 1s, and others with all 0s. When they were centralised, 2128 it was better to provide this option than to break all the archs 2129 and have several arch maintainers pursuing me down dark alleys. 2130 2131source "block/Kconfig" 2132 2133config PREEMPT_NOTIFIERS 2134 bool 2135 2136config PADATA 2137 depends on SMP 2138 bool 2139 2140# Can be selected by architectures with broken toolchains 2141# that get confused by correct const<->read_only section 2142# mappings 2143config BROKEN_RODATA 2144 bool 2145 2146config ASN1 2147 tristate 2148 help 2149 Build a simple ASN.1 grammar compiler that produces a bytecode output 2150 that can be interpreted by the ASN.1 stream decoder and used to 2151 inform it as to what tags are to be expected in a stream and what 2152 functions to call on what tags. 2153 2154source "kernel/Kconfig.locks" 2155