Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.22-rc5 789 lines 22 kB view raw
1# 2# For a description of the syntax of this configuration file, 3# see Documentation/kbuild/kconfig-language.txt. 4# 5# Note: ISA is disabled and will hopefully never be enabled. 6# If you managed to buy an ISA x86-64 box you'll have to fix all the 7# ISA drivers you need yourself. 8# 9 10mainmenu "Linux Kernel Configuration" 11 12config X86_64 13 bool 14 default y 15 help 16 Port to the x86-64 architecture. x86-64 is a 64-bit extension to the 17 classical 32-bit x86 architecture. For details see 18 <http://www.x86-64.org/>. 19 20config 64BIT 21 def_bool y 22 23config X86 24 bool 25 default y 26 27config GENERIC_TIME 28 bool 29 default y 30 31config GENERIC_TIME_VSYSCALL 32 bool 33 default y 34 35config ZONE_DMA32 36 bool 37 default y 38 39config LOCKDEP_SUPPORT 40 bool 41 default y 42 43config STACKTRACE_SUPPORT 44 bool 45 default y 46 47config SEMAPHORE_SLEEPERS 48 bool 49 default y 50 51config MMU 52 bool 53 default y 54 55config ZONE_DMA 56 bool 57 default y 58 59config ISA 60 bool 61 62config SBUS 63 bool 64 65config RWSEM_GENERIC_SPINLOCK 66 bool 67 default y 68 69config RWSEM_XCHGADD_ALGORITHM 70 bool 71 72config GENERIC_HWEIGHT 73 bool 74 default y 75 76config GENERIC_CALIBRATE_DELAY 77 bool 78 default y 79 80config X86_CMPXCHG 81 bool 82 default y 83 84config EARLY_PRINTK 85 bool 86 default y 87 88config GENERIC_ISA_DMA 89 bool 90 default y 91 92config GENERIC_IOMAP 93 bool 94 default y 95 96config ARCH_MAY_HAVE_PC_FDC 97 bool 98 default y 99 100config ARCH_POPULATES_NODE_MAP 101 def_bool y 102 103config DMI 104 bool 105 default y 106 107config AUDIT_ARCH 108 bool 109 default y 110 111config GENERIC_BUG 112 bool 113 default y 114 depends on BUG 115 116config ARCH_HAS_ILOG2_U32 117 bool 118 default n 119 120config ARCH_HAS_ILOG2_U64 121 bool 122 default n 123 124source "init/Kconfig" 125 126 127menu "Processor type and features" 128 129choice 130 prompt "Subarchitecture Type" 131 default X86_PC 132 133config X86_PC 134 bool "PC-compatible" 135 help 136 Choose this option if your computer is a standard PC or compatible. 137 138config X86_VSMP 139 bool "Support for ScaleMP vSMP" 140 depends on PCI 141 help 142 Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 143 supposed to run on these EM64T-based machines. Only choose this option 144 if you have one of these machines. 145 146endchoice 147 148choice 149 prompt "Processor family" 150 default GENERIC_CPU 151 152config MK8 153 bool "AMD-Opteron/Athlon64" 154 help 155 Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 156 157config MPSC 158 bool "Intel P4 / older Netburst based Xeon" 159 help 160 Optimize for Intel Pentium 4 and older Nocona/Dempsey Xeon CPUs 161 with Intel Extended Memory 64 Technology(EM64T). For details see 162 <http://www.intel.com/technology/64bitextensions/>. 163 Note that the latest Xeons (Xeon 51xx and 53xx) are not based on the 164 Netburst core and shouldn't use this option. You can distinguish them 165 using the cpu family field 166 in /proc/cpuinfo. Family 15 is an older Xeon, Family 6 a newer one 167 (this rule only applies to systems that support EM64T) 168 169config MCORE2 170 bool "Intel Core2 / newer Xeon" 171 help 172 Optimize for Intel Core2 and newer Xeons (51xx) 173 You can distinguish the newer Xeons from the older ones using 174 the cpu family field in /proc/cpuinfo. 15 is an older Xeon 175 (use CONFIG_MPSC then), 6 is a newer one. This rule only 176 applies to CPUs that support EM64T. 177 178config GENERIC_CPU 179 bool "Generic-x86-64" 180 help 181 Generic x86-64 CPU. 182 Run equally well on all x86-64 CPUs. 183 184endchoice 185 186# 187# Define implied options from the CPU selection here 188# 189config X86_L1_CACHE_BYTES 190 int 191 default "128" if GENERIC_CPU || MPSC 192 default "64" if MK8 || MCORE2 193 194config X86_L1_CACHE_SHIFT 195 int 196 default "7" if GENERIC_CPU || MPSC 197 default "6" if MK8 || MCORE2 198 199config X86_INTERNODE_CACHE_BYTES 200 int 201 default "4096" if X86_VSMP 202 default X86_L1_CACHE_BYTES if !X86_VSMP 203 204config X86_TSC 205 bool 206 default y 207 208config X86_GOOD_APIC 209 bool 210 default y 211 212config MICROCODE 213 tristate "/dev/cpu/microcode - Intel CPU microcode support" 214 select FW_LOADER 215 ---help--- 216 If you say Y here the 'File systems' section, you will be 217 able to update the microcode on Intel processors. You will 218 obviously need the actual microcode binary data itself which is 219 not shipped with the Linux kernel. 220 221 For latest news and information on obtaining all the required 222 ingredients for this driver, check: 223 <http://www.urbanmyth.org/microcode/>. 224 225 To compile this driver as a module, choose M here: the 226 module will be called microcode. 227 If you use modprobe or kmod you may also want to add the line 228 'alias char-major-10-184 microcode' to your /etc/modules.conf file. 229 230config MICROCODE_OLD_INTERFACE 231 bool 232 depends on MICROCODE 233 default y 234 235config X86_MSR 236 tristate "/dev/cpu/*/msr - Model-specific register support" 237 help 238 This device gives privileged processes access to the x86 239 Model-Specific Registers (MSRs). It is a character device with 240 major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 241 MSR accesses are directed to a specific CPU on multi-processor 242 systems. 243 244config X86_CPUID 245 tristate "/dev/cpu/*/cpuid - CPU information support" 246 help 247 This device gives processes access to the x86 CPUID instruction to 248 be executed on a specific processor. It is a character device 249 with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 250 /dev/cpu/31/cpuid. 251 252config X86_HT 253 bool 254 depends on SMP && !MK8 255 default y 256 257config MATH_EMULATION 258 bool 259 260config MCA 261 bool 262 263config EISA 264 bool 265 266config X86_IO_APIC 267 bool 268 default y 269 270config X86_LOCAL_APIC 271 bool 272 default y 273 274config MTRR 275 bool "MTRR (Memory Type Range Register) support" 276 ---help--- 277 On Intel P6 family processors (Pentium Pro, Pentium II and later) 278 the Memory Type Range Registers (MTRRs) may be used to control 279 processor access to memory ranges. This is most useful if you have 280 a video (VGA) card on a PCI or AGP bus. Enabling write-combining 281 allows bus write transfers to be combined into a larger transfer 282 before bursting over the PCI/AGP bus. This can increase performance 283 of image write operations 2.5 times or more. Saying Y here creates a 284 /proc/mtrr file which may be used to manipulate your processor's 285 MTRRs. Typically the X server should use this. 286 287 This code has a reasonably generic interface so that similar 288 control registers on other processors can be easily supported 289 as well. 290 291 Saying Y here also fixes a problem with buggy SMP BIOSes which only 292 set the MTRRs for the boot CPU and not for the secondary CPUs. This 293 can lead to all sorts of problems, so it's good to say Y here. 294 295 Just say Y here, all x86-64 machines support MTRRs. 296 297 See <file:Documentation/mtrr.txt> for more information. 298 299config SMP 300 bool "Symmetric multi-processing support" 301 ---help--- 302 This enables support for systems with more than one CPU. If you have 303 a system with only one CPU, like most personal computers, say N. If 304 you have a system with more than one CPU, say Y. 305 306 If you say N here, the kernel will run on single and multiprocessor 307 machines, but will use only one CPU of a multiprocessor machine. If 308 you say Y here, the kernel will run on many, but not all, 309 singleprocessor machines. On a singleprocessor machine, the kernel 310 will run faster if you say N here. 311 312 If you don't know what to do here, say N. 313 314config SCHED_SMT 315 bool "SMT (Hyperthreading) scheduler support" 316 depends on SMP 317 default n 318 help 319 SMT scheduler support improves the CPU scheduler's decision making 320 when dealing with Intel Pentium 4 chips with HyperThreading at a 321 cost of slightly increased overhead in some places. If unsure say 322 N here. 323 324config SCHED_MC 325 bool "Multi-core scheduler support" 326 depends on SMP 327 default y 328 help 329 Multi-core scheduler support improves the CPU scheduler's decision 330 making when dealing with multi-core CPU chips at a cost of slightly 331 increased overhead in some places. If unsure say N here. 332 333source "kernel/Kconfig.preempt" 334 335config NUMA 336 bool "Non Uniform Memory Access (NUMA) Support" 337 depends on SMP 338 help 339 Enable NUMA (Non Uniform Memory Access) support. The kernel 340 will try to allocate memory used by a CPU on the local memory 341 controller of the CPU and add some more NUMA awareness to the kernel. 342 This code is recommended on all multiprocessor Opteron systems. 343 If the system is EM64T, you should say N unless your system is EM64T 344 NUMA. 345 346config K8_NUMA 347 bool "Old style AMD Opteron NUMA detection" 348 depends on NUMA && PCI 349 default y 350 help 351 Enable K8 NUMA node topology detection. You should say Y here if 352 you have a multi processor AMD K8 system. This uses an old 353 method to read the NUMA configuration directly from the builtin 354 Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA 355 instead, which also takes priority if both are compiled in. 356 357config NODES_SHIFT 358 int 359 default "6" 360 depends on NEED_MULTIPLE_NODES 361 362# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig. 363 364config X86_64_ACPI_NUMA 365 bool "ACPI NUMA detection" 366 depends on NUMA 367 select ACPI 368 select PCI 369 select ACPI_NUMA 370 default y 371 help 372 Enable ACPI SRAT based node topology detection. 373 374config NUMA_EMU 375 bool "NUMA emulation" 376 depends on NUMA 377 help 378 Enable NUMA emulation. A flat machine will be split 379 into virtual nodes when booted with "numa=fake=N", where N is the 380 number of nodes. This is only useful for debugging. 381 382config ARCH_DISCONTIGMEM_ENABLE 383 bool 384 depends on NUMA 385 default y 386 387config ARCH_DISCONTIGMEM_DEFAULT 388 def_bool y 389 depends on NUMA 390 391config ARCH_SPARSEMEM_ENABLE 392 def_bool y 393 depends on (NUMA || EXPERIMENTAL) 394 395config ARCH_MEMORY_PROBE 396 def_bool y 397 depends on MEMORY_HOTPLUG 398 399config ARCH_FLATMEM_ENABLE 400 def_bool y 401 depends on !NUMA 402 403source "mm/Kconfig" 404 405config MEMORY_HOTPLUG_RESERVE 406 def_bool y 407 depends on (MEMORY_HOTPLUG && DISCONTIGMEM) 408 409config HAVE_ARCH_EARLY_PFN_TO_NID 410 def_bool y 411 depends on NUMA 412 413config OUT_OF_LINE_PFN_TO_PAGE 414 def_bool y 415 depends on DISCONTIGMEM 416 417config NR_CPUS 418 int "Maximum number of CPUs (2-255)" 419 range 2 255 420 depends on SMP 421 default "8" 422 help 423 This allows you to specify the maximum number of CPUs which this 424 kernel will support. Current maximum is 255 CPUs due to 425 APIC addressing limits. Less depending on the hardware. 426 427 This is purely to save memory - each supported CPU requires 428 memory in the static kernel configuration. 429 430config HOTPLUG_CPU 431 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)" 432 depends on SMP && HOTPLUG && EXPERIMENTAL 433 help 434 Say Y here to experiment with turning CPUs off and on. CPUs 435 can be controlled through /sys/devices/system/cpu/cpu#. 436 This is also required for suspend/hibernation on SMP systems. 437 438 Say N if you want to disable CPU hotplug and don't need to 439 suspend. 440 441config ARCH_ENABLE_MEMORY_HOTPLUG 442 def_bool y 443 444config HPET_TIMER 445 bool 446 default y 447 help 448 Use the IA-PC HPET (High Precision Event Timer) to manage 449 time in preference to the PIT and RTC, if a HPET is 450 present. The HPET provides a stable time base on SMP 451 systems, unlike the TSC, but it is more expensive to access, 452 as it is off-chip. You can find the HPET spec at 453 <http://www.intel.com/hardwaredesign/hpetspec.htm>. 454 455config HPET_EMULATE_RTC 456 bool "Provide RTC interrupt" 457 depends on HPET_TIMER && RTC=y 458 459# Mark as embedded because too many people got it wrong. 460# The code disables itself when not needed. 461config IOMMU 462 bool "IOMMU support" if EMBEDDED 463 default y 464 select SWIOTLB 465 select AGP 466 depends on PCI 467 help 468 Support for full DMA access of devices with 32bit memory access only 469 on systems with more than 3GB. This is usually needed for USB, 470 sound, many IDE/SATA chipsets and some other devices. 471 Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART 472 based hardware IOMMU and a software bounce buffer based IOMMU used 473 on Intel systems and as fallback. 474 The code is only active when needed (enough memory and limited 475 device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified 476 too. 477 478config CALGARY_IOMMU 479 bool "IBM Calgary IOMMU support" 480 select SWIOTLB 481 depends on PCI && EXPERIMENTAL 482 help 483 Support for hardware IOMMUs in IBM's xSeries x366 and x460 484 systems. Needed to run systems with more than 3GB of memory 485 properly with 32-bit PCI devices that do not support DAC 486 (Double Address Cycle). Calgary also supports bus level 487 isolation, where all DMAs pass through the IOMMU. This 488 prevents them from going anywhere except their intended 489 destination. This catches hard-to-find kernel bugs and 490 mis-behaving drivers and devices that do not use the DMA-API 491 properly to set up their DMA buffers. The IOMMU can be 492 turned off at boot time with the iommu=off parameter. 493 Normally the kernel will make the right choice by itself. 494 If unsure, say Y. 495 496config CALGARY_IOMMU_ENABLED_BY_DEFAULT 497 bool "Should Calgary be enabled by default?" 498 default y 499 depends on CALGARY_IOMMU 500 help 501 Should Calgary be enabled by default? if you choose 'y', Calgary 502 will be used (if it exists). If you choose 'n', Calgary will not be 503 used even if it exists. If you choose 'n' and would like to use 504 Calgary anyway, pass 'iommu=calgary' on the kernel command line. 505 If unsure, say Y. 506 507# need this always selected by IOMMU for the VIA workaround 508config SWIOTLB 509 bool 510 help 511 Support for software bounce buffers used on x86-64 systems 512 which don't have a hardware IOMMU (e.g. the current generation 513 of Intel's x86-64 CPUs). Using this PCI devices which can only 514 access 32-bits of memory can be used on systems with more than 515 3 GB of memory. If unsure, say Y. 516 517config X86_MCE 518 bool "Machine check support" if EMBEDDED 519 default y 520 help 521 Include a machine check error handler to report hardware errors. 522 This version will require the mcelog utility to decode some 523 machine check error logs. See 524 ftp://ftp.x86-64.org/pub/linux/tools/mcelog 525 526config X86_MCE_INTEL 527 bool "Intel MCE features" 528 depends on X86_MCE && X86_LOCAL_APIC 529 default y 530 help 531 Additional support for intel specific MCE features such as 532 the thermal monitor. 533 534config X86_MCE_AMD 535 bool "AMD MCE features" 536 depends on X86_MCE && X86_LOCAL_APIC 537 default y 538 help 539 Additional support for AMD specific MCE features such as 540 the DRAM Error Threshold. 541 542config KEXEC 543 bool "kexec system call" 544 help 545 kexec is a system call that implements the ability to shutdown your 546 current kernel, and to start another kernel. It is like a reboot 547 but it is independent of the system firmware. And like a reboot 548 you can start any kernel with it, not just Linux. 549 550 The name comes from the similarity to the exec system call. 551 552 It is an ongoing process to be certain the hardware in a machine 553 is properly shutdown, so do not be surprised if this code does not 554 initially work for you. It may help to enable device hotplugging 555 support. As of this writing the exact hardware interface is 556 strongly in flux, so no good recommendation can be made. 557 558config CRASH_DUMP 559 bool "kernel crash dumps (EXPERIMENTAL)" 560 depends on EXPERIMENTAL 561 help 562 Generate crash dump after being started by kexec. 563 This should be normally only set in special crash dump kernels 564 which are loaded in the main kernel with kexec-tools into 565 a specially reserved region and then later executed after 566 a crash by kdump/kexec. The crash dump kernel must be compiled 567 to a memory address not used by the main kernel or BIOS using 568 PHYSICAL_START. 569 For more details see Documentation/kdump/kdump.txt 570 571config RELOCATABLE 572 bool "Build a relocatable kernel(EXPERIMENTAL)" 573 depends on EXPERIMENTAL 574 help 575 Builds a relocatable kernel. This enables loading and running 576 a kernel binary from a different physical address than it has 577 been compiled for. 578 579 One use is for the kexec on panic case where the recovery kernel 580 must live at a different physical address than the primary 581 kernel. 582 583 Note: If CONFIG_RELOCATABLE=y, then kernel run from the address 584 it has been loaded at and compile time physical address 585 (CONFIG_PHYSICAL_START) is ignored. 586 587config PHYSICAL_START 588 hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP) 589 default "0x200000" 590 help 591 This gives the physical address where the kernel is loaded. It 592 should be aligned to 2MB boundary. 593 594 If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 595 bzImage will decompress itself to above physical address and 596 run from there. Otherwise, bzImage will run from the address where 597 it has been loaded by the boot loader and will ignore above physical 598 address. 599 600 In normal kdump cases one does not have to set/change this option 601 as now bzImage can be compiled as a completely relocatable image 602 (CONFIG_RELOCATABLE=y) and be used to load and run from a different 603 address. This option is mainly useful for the folks who don't want 604 to use a bzImage for capturing the crash dump and want to use a 605 vmlinux instead. 606 607 So if you are using bzImage for capturing the crash dump, leave 608 the value here unchanged to 0x200000 and set CONFIG_RELOCATABLE=y. 609 Otherwise if you plan to use vmlinux for capturing the crash dump 610 change this value to start of the reserved region (Typically 16MB 611 0x1000000). In other words, it can be set based on the "X" value as 612 specified in the "crashkernel=YM@XM" command line boot parameter 613 passed to the panic-ed kernel. Typically this parameter is set as 614 crashkernel=64M@16M. Please take a look at 615 Documentation/kdump/kdump.txt for more details about crash dumps. 616 617 Usage of bzImage for capturing the crash dump is advantageous as 618 one does not have to build two kernels. Same kernel can be used 619 as production kernel and capture kernel. 620 621 Don't change this unless you know what you are doing. 622 623config SECCOMP 624 bool "Enable seccomp to safely compute untrusted bytecode" 625 depends on PROC_FS 626 default y 627 help 628 This kernel feature is useful for number crunching applications 629 that may need to compute untrusted bytecode during their 630 execution. By using pipes or other transports made available to 631 the process as file descriptors supporting the read/write 632 syscalls, it's possible to isolate those applications in 633 their own address space using seccomp. Once seccomp is 634 enabled via /proc/<pid>/seccomp, it cannot be disabled 635 and the task is only allowed to execute a few safe syscalls 636 defined by each seccomp mode. 637 638 If unsure, say Y. Only embedded should say N here. 639 640config CC_STACKPROTECTOR 641 bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" 642 depends on EXPERIMENTAL 643 help 644 This option turns on the -fstack-protector GCC feature. This 645 feature puts, at the beginning of critical functions, a canary 646 value on the stack just before the return address, and validates 647 the value just before actually returning. Stack based buffer 648 overflows (that need to overwrite this return address) now also 649 overwrite the canary, which gets detected and the attack is then 650 neutralized via a kernel panic. 651 652 This feature requires gcc version 4.2 or above, or a distribution 653 gcc with the feature backported. Older versions are automatically 654 detected and for those versions, this configuration option is ignored. 655 656config CC_STACKPROTECTOR_ALL 657 bool "Use stack-protector for all functions" 658 depends on CC_STACKPROTECTOR 659 help 660 Normally, GCC only inserts the canary value protection for 661 functions that use large-ish on-stack buffers. By enabling 662 this option, GCC will be asked to do this for ALL functions. 663 664source kernel/Kconfig.hz 665 666config K8_NB 667 def_bool y 668 depends on AGP_AMD64 || IOMMU || (PCI && NUMA) 669 670endmenu 671 672# 673# Use the generic interrupt handling code in kernel/irq/: 674# 675config GENERIC_HARDIRQS 676 bool 677 default y 678 679config GENERIC_IRQ_PROBE 680 bool 681 default y 682 683# we have no ISA slots, but we do have ISA-style DMA. 684config ISA_DMA_API 685 bool 686 default y 687 688config GENERIC_PENDING_IRQ 689 bool 690 depends on GENERIC_HARDIRQS && SMP 691 default y 692 693menu "Power management options" 694 695source kernel/power/Kconfig 696 697source "drivers/acpi/Kconfig" 698 699source "arch/x86_64/kernel/cpufreq/Kconfig" 700 701endmenu 702 703menu "Bus options (PCI etc.)" 704 705config PCI 706 bool "PCI support" 707 select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) 708 709# x86-64 doesn't support PCI BIOS access from long mode so always go direct. 710config PCI_DIRECT 711 bool 712 depends on PCI 713 default y 714 715config PCI_MMCONFIG 716 bool "Support mmconfig PCI config space access" 717 depends on PCI && ACPI 718 719source "drivers/pci/pcie/Kconfig" 720 721source "drivers/pci/Kconfig" 722 723source "drivers/pcmcia/Kconfig" 724 725source "drivers/pci/hotplug/Kconfig" 726 727endmenu 728 729 730menu "Executable file formats / Emulations" 731 732source "fs/Kconfig.binfmt" 733 734config IA32_EMULATION 735 bool "IA32 Emulation" 736 help 737 Include code to run 32-bit programs under a 64-bit kernel. You should likely 738 turn this on, unless you're 100% sure that you don't have any 32-bit programs 739 left. 740 741config IA32_AOUT 742 tristate "IA32 a.out support" 743 depends on IA32_EMULATION 744 help 745 Support old a.out binaries in the 32bit emulation. 746 747config COMPAT 748 bool 749 depends on IA32_EMULATION 750 default y 751 752config SYSVIPC_COMPAT 753 bool 754 depends on COMPAT && SYSVIPC 755 default y 756 757endmenu 758 759source "net/Kconfig" 760 761source drivers/Kconfig 762 763source "drivers/firmware/Kconfig" 764 765source fs/Kconfig 766 767menu "Instrumentation Support" 768 depends on EXPERIMENTAL 769 770source "arch/x86_64/oprofile/Kconfig" 771 772config KPROBES 773 bool "Kprobes (EXPERIMENTAL)" 774 depends on KALLSYMS && EXPERIMENTAL && MODULES 775 help 776 Kprobes allows you to trap at almost any kernel address and 777 execute a callback function. register_kprobe() establishes 778 a probepoint and specifies the callback. Kprobes is useful 779 for kernel debugging, non-intrusive instrumentation and testing. 780 If in doubt, say "N". 781endmenu 782 783source "arch/x86_64/Kconfig.debug" 784 785source "security/Kconfig" 786 787source "crypto/Kconfig" 788 789source "lib/Kconfig"