aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r--arch/x86/Kconfig141
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
19config X86 19config 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
38config ARCH_DEFCONFIG 43config ARCH_DEFCONFIG
39 string 44 string
@@ -87,6 +92,10 @@ config GENERIC_IOMAP
87config GENERIC_BUG 92config 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
97config GENERIC_BUG_RELATIVE_POINTERS
98 bool
90 99
91config GENERIC_HWEIGHT 100config 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
250config 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
263config 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
241config X86_FIND_SMP_CONFIG 272config 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
245if ACPI
246config X86_MPPARSE 276config 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
253endif
254
255if !ACPI
256config X86_MPPARSE
257 def_bool y
258 depends on X86_LOCAL_APIC
259endif
260 283
261choice 284choice
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
370config SCHED_NO_NO_OMIT_FRAME_POINTER 393config 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
468config ES7000_CLUSTERED_APIC
469 def_bool y
470 depends on SMP && X86_ES7000 && MPENTIUMIII
471
472source "arch/x86/Kconfig.cpu" 491source "arch/x86/Kconfig.cpu"
473 492
474config HPET_TIMER 493config 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
589config 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
571config SWIOTLB 600config 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
580config IOMMU_HELPER 609config IOMMU_HELPER
581 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) 610 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
582 611
612config IOMMU_API
613 def_bool (AMD_IOMMU || DMAR)
614
583config MAXSMP 615config 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
591config NR_CPUS 624config 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
696config 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
663config X86_MCE 720config 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
956config ARCH_PHYS_ADDR_T_64BIT 1013config ARCH_PHYS_ADDR_T_64BIT
957 def_bool X86_64 || X86_PAE 1014 def_bool X86_64 || X86_PAE
958 1015
1016config 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
960config NUMA 1026config 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
978comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" 1048comment "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
1566config ARCH_ENABLE_MEMORY_HOTREMOVE
1567 def_bool y
1568 depends on MEMORY_HOTPLUG
1569
1496config HAVE_ARCH_EARLY_PFN_TO_NID 1570config 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
1635config 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
1642endif # APM 1709endif # APM
1643 1710
1644source "arch/x86/kernel/cpu/cpufreq/Kconfig" 1711source "arch/x86/kernel/cpu/cpufreq/Kconfig"