diff options
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r-- | arch/x86/Kconfig | 141 |
1 files changed, 104 insertions, 37 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index ac22bb7719f7..862adb9bf0d4 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -19,6 +19,8 @@ config X86_64 | |||
19 | config X86 | 19 | config X86 |
20 | def_bool y | 20 | def_bool y |
21 | select HAVE_AOUT if X86_32 | 21 | select HAVE_AOUT if X86_32 |
22 | select HAVE_READQ | ||
23 | select HAVE_WRITEQ | ||
22 | select HAVE_UNSTABLE_SCHED_CLOCK | 24 | select HAVE_UNSTABLE_SCHED_CLOCK |
23 | select HAVE_IDE | 25 | select HAVE_IDE |
24 | select HAVE_OPROFILE | 26 | select HAVE_OPROFILE |
@@ -29,11 +31,14 @@ config X86 | |||
29 | select HAVE_FTRACE_MCOUNT_RECORD | 31 | select HAVE_FTRACE_MCOUNT_RECORD |
30 | select HAVE_DYNAMIC_FTRACE | 32 | select HAVE_DYNAMIC_FTRACE |
31 | select HAVE_FUNCTION_TRACER | 33 | select HAVE_FUNCTION_TRACER |
34 | select HAVE_FUNCTION_GRAPH_TRACER | ||
35 | select HAVE_FUNCTION_TRACE_MCOUNT_TEST | ||
32 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) | 36 | select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) |
33 | select HAVE_ARCH_KGDB if !X86_VOYAGER | 37 | select HAVE_ARCH_KGDB if !X86_VOYAGER |
34 | select HAVE_ARCH_TRACEHOOK | 38 | select HAVE_ARCH_TRACEHOOK |
35 | select HAVE_GENERIC_DMA_COHERENT if X86_32 | 39 | select HAVE_GENERIC_DMA_COHERENT if X86_32 |
36 | select HAVE_EFFICIENT_UNALIGNED_ACCESS | 40 | select HAVE_EFFICIENT_UNALIGNED_ACCESS |
41 | select USER_STACKTRACE_SUPPORT | ||
37 | 42 | ||
38 | config ARCH_DEFCONFIG | 43 | config ARCH_DEFCONFIG |
39 | string | 44 | string |
@@ -87,6 +92,10 @@ config GENERIC_IOMAP | |||
87 | config GENERIC_BUG | 92 | config GENERIC_BUG |
88 | def_bool y | 93 | def_bool y |
89 | depends on BUG | 94 | depends on BUG |
95 | select GENERIC_BUG_RELATIVE_POINTERS if X86_64 | ||
96 | |||
97 | config GENERIC_BUG_RELATIVE_POINTERS | ||
98 | bool | ||
90 | 99 | ||
91 | config GENERIC_HWEIGHT | 100 | config GENERIC_HWEIGHT |
92 | def_bool y | 101 | def_bool y |
@@ -238,25 +247,39 @@ config X86_HAS_BOOT_CPU_ID | |||
238 | def_bool y | 247 | def_bool y |
239 | depends on X86_VOYAGER | 248 | depends on X86_VOYAGER |
240 | 249 | ||
250 | config SPARSE_IRQ | ||
251 | bool "Support sparse irq numbering" | ||
252 | depends on PCI_MSI || HT_IRQ | ||
253 | help | ||
254 | This enables support for sparse irqs. This is useful for distro | ||
255 | kernels that want to define a high CONFIG_NR_CPUS value but still | ||
256 | want to have low kernel memory footprint on smaller machines. | ||
257 | |||
258 | ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread | ||
259 | out the irq_desc[] array in a more NUMA-friendly way. ) | ||
260 | |||
261 | If you don't know what to do here, say N. | ||
262 | |||
263 | config NUMA_MIGRATE_IRQ_DESC | ||
264 | bool "Move irq desc when changing irq smp_affinity" | ||
265 | depends on SPARSE_IRQ && NUMA | ||
266 | default n | ||
267 | help | ||
268 | This enables moving irq_desc to cpu/node that irq will use handled. | ||
269 | |||
270 | If you don't know what to do here, say N. | ||
271 | |||
241 | config X86_FIND_SMP_CONFIG | 272 | config X86_FIND_SMP_CONFIG |
242 | def_bool y | 273 | def_bool y |
243 | depends on X86_MPPARSE || X86_VOYAGER | 274 | depends on X86_MPPARSE || X86_VOYAGER |
244 | 275 | ||
245 | if ACPI | ||
246 | config X86_MPPARSE | 276 | config X86_MPPARSE |
247 | def_bool y | 277 | bool "Enable MPS table" if ACPI |
248 | bool "Enable MPS table" | 278 | default y |
249 | depends on X86_LOCAL_APIC | 279 | depends on X86_LOCAL_APIC |
250 | help | 280 | help |
251 | For old smp systems that do not have proper acpi support. Newer systems | 281 | For old smp systems that do not have proper acpi support. Newer systems |
252 | (esp with 64bit cpus) with acpi support, MADT and DSDT will override it | 282 | (esp with 64bit cpus) with acpi support, MADT and DSDT will override it |
253 | endif | ||
254 | |||
255 | if !ACPI | ||
256 | config X86_MPPARSE | ||
257 | def_bool y | ||
258 | depends on X86_LOCAL_APIC | ||
259 | endif | ||
260 | 283 | ||
261 | choice | 284 | choice |
262 | prompt "Subarchitecture Type" | 285 | prompt "Subarchitecture Type" |
@@ -367,10 +390,10 @@ config X86_RDC321X | |||
367 | as R-8610-(G). | 390 | as R-8610-(G). |
368 | If you don't have one of these chips, you should say N here. | 391 | If you don't have one of these chips, you should say N here. |
369 | 392 | ||
370 | config SCHED_NO_NO_OMIT_FRAME_POINTER | 393 | config SCHED_OMIT_FRAME_POINTER |
371 | def_bool y | 394 | def_bool y |
372 | prompt "Single-depth WCHAN output" | 395 | prompt "Single-depth WCHAN output" |
373 | depends on X86_32 | 396 | depends on X86 |
374 | help | 397 | help |
375 | Calculate simpler /proc/<PID>/wchan values. If this option | 398 | Calculate simpler /proc/<PID>/wchan values. If this option |
376 | is disabled then wchan values will recurse back to the | 399 | is disabled then wchan values will recurse back to the |
@@ -465,10 +488,6 @@ config X86_CYCLONE_TIMER | |||
465 | def_bool y | 488 | def_bool y |
466 | depends on X86_GENERICARCH | 489 | depends on X86_GENERICARCH |
467 | 490 | ||
468 | config ES7000_CLUSTERED_APIC | ||
469 | def_bool y | ||
470 | depends on SMP && X86_ES7000 && MPENTIUMIII | ||
471 | |||
472 | source "arch/x86/Kconfig.cpu" | 491 | source "arch/x86/Kconfig.cpu" |
473 | 492 | ||
474 | config HPET_TIMER | 493 | config HPET_TIMER |
@@ -482,7 +501,7 @@ config HPET_TIMER | |||
482 | The HPET provides a stable time base on SMP | 501 | The HPET provides a stable time base on SMP |
483 | systems, unlike the TSC, but it is more expensive to access, | 502 | systems, unlike the TSC, but it is more expensive to access, |
484 | as it is off-chip. You can find the HPET spec at | 503 | as it is off-chip. You can find the HPET spec at |
485 | <http://www.intel.com/hardwaredesign/hpetspec.htm>. | 504 | <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>. |
486 | 505 | ||
487 | You can safely choose Y here. However, HPET will only be | 506 | You can safely choose Y here. However, HPET will only be |
488 | activated if the platform and the BIOS support this feature. | 507 | activated if the platform and the BIOS support this feature. |
@@ -567,9 +586,19 @@ config AMD_IOMMU | |||
567 | your BIOS for an option to enable it or if you have an IVRS ACPI | 586 | your BIOS for an option to enable it or if you have an IVRS ACPI |
568 | table. | 587 | table. |
569 | 588 | ||
589 | config AMD_IOMMU_STATS | ||
590 | bool "Export AMD IOMMU statistics to debugfs" | ||
591 | depends on AMD_IOMMU | ||
592 | select DEBUG_FS | ||
593 | help | ||
594 | This option enables code in the AMD IOMMU driver to collect various | ||
595 | statistics about whats happening in the driver and exports that | ||
596 | information to userspace via debugfs. | ||
597 | If unsure, say N. | ||
598 | |||
570 | # need this always selected by IOMMU for the VIA workaround | 599 | # need this always selected by IOMMU for the VIA workaround |
571 | config SWIOTLB | 600 | config SWIOTLB |
572 | bool | 601 | def_bool y if X86_64 |
573 | help | 602 | help |
574 | Support for software bounce buffers used on x86-64 systems | 603 | Support for software bounce buffers used on x86-64 systems |
575 | which don't have a hardware IOMMU (e.g. the current generation | 604 | which don't have a hardware IOMMU (e.g. the current generation |
@@ -580,21 +609,25 @@ config SWIOTLB | |||
580 | config IOMMU_HELPER | 609 | config IOMMU_HELPER |
581 | def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) | 610 | def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) |
582 | 611 | ||
612 | config IOMMU_API | ||
613 | def_bool (AMD_IOMMU || DMAR) | ||
614 | |||
583 | config MAXSMP | 615 | config MAXSMP |
584 | bool "Configure Maximum number of SMP Processors and NUMA Nodes" | 616 | bool "Configure Maximum number of SMP Processors and NUMA Nodes" |
585 | depends on X86_64 && SMP && BROKEN | 617 | depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL |
618 | select CPUMASK_OFFSTACK | ||
586 | default n | 619 | default n |
587 | help | 620 | help |
588 | Configure maximum number of CPUS and NUMA Nodes for this architecture. | 621 | Configure maximum number of CPUS and NUMA Nodes for this architecture. |
589 | If unsure, say N. | 622 | If unsure, say N. |
590 | 623 | ||
591 | config NR_CPUS | 624 | config NR_CPUS |
592 | int "Maximum number of CPUs (2-512)" if !MAXSMP | 625 | int "Maximum number of CPUs" if SMP && !MAXSMP |
593 | range 2 512 | 626 | range 2 512 if SMP && !MAXSMP |
594 | depends on SMP | 627 | default "1" if !SMP |
595 | default "4096" if MAXSMP | 628 | default "4096" if MAXSMP |
596 | default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 | 629 | default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000) |
597 | default "8" | 630 | default "8" if SMP |
598 | help | 631 | help |
599 | This allows you to specify the maximum number of CPUs which this | 632 | This allows you to specify the maximum number of CPUs which this |
600 | kernel will support. The maximum supported value is 512 and the | 633 | kernel will support. The maximum supported value is 512 and the |
@@ -660,6 +693,30 @@ config X86_VISWS_APIC | |||
660 | def_bool y | 693 | def_bool y |
661 | depends on X86_32 && X86_VISWS | 694 | depends on X86_32 && X86_VISWS |
662 | 695 | ||
696 | config X86_REROUTE_FOR_BROKEN_BOOT_IRQS | ||
697 | bool "Reroute for broken boot IRQs" | ||
698 | default n | ||
699 | depends on X86_IO_APIC | ||
700 | help | ||
701 | This option enables a workaround that fixes a source of | ||
702 | spurious interrupts. This is recommended when threaded | ||
703 | interrupt handling is used on systems where the generation of | ||
704 | superfluous "boot interrupts" cannot be disabled. | ||
705 | |||
706 | Some chipsets generate a legacy INTx "boot IRQ" when the IRQ | ||
707 | entry in the chipset's IO-APIC is masked (as, e.g. the RT | ||
708 | kernel does during interrupt handling). On chipsets where this | ||
709 | boot IRQ generation cannot be disabled, this workaround keeps | ||
710 | the original IRQ line masked so that only the equivalent "boot | ||
711 | IRQ" is delivered to the CPUs. The workaround also tells the | ||
712 | kernel to set up the IRQ handler on the boot IRQ line. In this | ||
713 | way only one interrupt is delivered to the kernel. Otherwise | ||
714 | the spurious second interrupt may cause the kernel to bring | ||
715 | down (vital) interrupt lines. | ||
716 | |||
717 | Only affects "broken" chipsets. Interrupt sharing may be | ||
718 | increased on these systems. | ||
719 | |||
663 | config X86_MCE | 720 | config X86_MCE |
664 | bool "Machine Check Exception" | 721 | bool "Machine Check Exception" |
665 | depends on !X86_VOYAGER | 722 | depends on !X86_VOYAGER |
@@ -956,24 +1013,37 @@ config X86_PAE | |||
956 | config ARCH_PHYS_ADDR_T_64BIT | 1013 | config ARCH_PHYS_ADDR_T_64BIT |
957 | def_bool X86_64 || X86_PAE | 1014 | def_bool X86_64 || X86_PAE |
958 | 1015 | ||
1016 | config DIRECT_GBPAGES | ||
1017 | bool "Enable 1GB pages for kernel pagetables" if EMBEDDED | ||
1018 | default y | ||
1019 | depends on X86_64 | ||
1020 | help | ||
1021 | Allow the kernel linear mapping to use 1GB pages on CPUs that | ||
1022 | support it. This can improve the kernel's performance a tiny bit by | ||
1023 | reducing TLB pressure. If in doubt, say "Y". | ||
1024 | |||
959 | # Common NUMA Features | 1025 | # Common NUMA Features |
960 | config NUMA | 1026 | config NUMA |
961 | bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" | 1027 | bool "Numa Memory Allocation and Scheduler Support" |
962 | depends on SMP | 1028 | depends on SMP |
963 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) | 1029 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) |
964 | default n if X86_PC | 1030 | default n if X86_PC |
965 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) | 1031 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) |
966 | help | 1032 | help |
967 | Enable NUMA (Non Uniform Memory Access) support. | 1033 | Enable NUMA (Non Uniform Memory Access) support. |
1034 | |||
968 | The kernel will try to allocate memory used by a CPU on the | 1035 | The kernel will try to allocate memory used by a CPU on the |
969 | local memory controller of the CPU and add some more | 1036 | local memory controller of the CPU and add some more |
970 | NUMA awareness to the kernel. | 1037 | NUMA awareness to the kernel. |
971 | 1038 | ||
972 | For 32-bit this is currently highly experimental and should be only | 1039 | For 64-bit this is recommended if the system is Intel Core i7 |
973 | used for kernel development. It might also cause boot failures. | 1040 | (or later), AMD Opteron, or EM64T NUMA. |
974 | For 64-bit this is recommended on all multiprocessor Opteron systems. | 1041 | |
975 | If the system is EM64T, you should say N unless your system is | 1042 | For 32-bit this is only needed on (rare) 32-bit-only platforms |
976 | EM64T NUMA. | 1043 | that support NUMA topologies, such as NUMAQ / Summit, or if you |
1044 | boot a 32-bit kernel on a 64-bit NUMA platform. | ||
1045 | |||
1046 | Otherwise, you should say N. | ||
977 | 1047 | ||
978 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" | 1048 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" |
979 | depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) | 1049 | depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) |
@@ -1493,6 +1563,10 @@ config ARCH_ENABLE_MEMORY_HOTPLUG | |||
1493 | def_bool y | 1563 | def_bool y |
1494 | depends on X86_64 || (X86_32 && HIGHMEM) | 1564 | depends on X86_64 || (X86_32 && HIGHMEM) |
1495 | 1565 | ||
1566 | config ARCH_ENABLE_MEMORY_HOTREMOVE | ||
1567 | def_bool y | ||
1568 | depends on MEMORY_HOTPLUG | ||
1569 | |||
1496 | config HAVE_ARCH_EARLY_PFN_TO_NID | 1570 | config HAVE_ARCH_EARLY_PFN_TO_NID |
1497 | def_bool X86_64 | 1571 | def_bool X86_64 |
1498 | depends on NUMA | 1572 | depends on NUMA |
@@ -1632,13 +1706,6 @@ config APM_ALLOW_INTS | |||
1632 | many of the newer IBM Thinkpads. If you experience hangs when you | 1706 | many of the newer IBM Thinkpads. If you experience hangs when you |
1633 | suspend, try setting this to Y. Otherwise, say N. | 1707 | suspend, try setting this to Y. Otherwise, say N. |
1634 | 1708 | ||
1635 | config APM_REAL_MODE_POWER_OFF | ||
1636 | bool "Use real mode APM BIOS call to power off" | ||
1637 | help | ||
1638 | Use real mode APM BIOS calls to switch off the computer. This is | ||
1639 | a work-around for a number of buggy BIOSes. Switch this option on if | ||
1640 | your computer crashes instead of powering off properly. | ||
1641 | |||
1642 | endif # APM | 1709 | endif # APM |
1643 | 1710 | ||
1644 | source "arch/x86/kernel/cpu/cpufreq/Kconfig" | 1711 | source "arch/x86/kernel/cpu/cpufreq/Kconfig" |