diff options
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r-- | arch/x86/Kconfig | 88 |
1 files changed, 65 insertions, 23 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 0ca2eb7573cd..249d1e0824b5 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 |
@@ -90,6 +92,10 @@ config GENERIC_IOMAP | |||
90 | config GENERIC_BUG | 92 | config GENERIC_BUG |
91 | def_bool y | 93 | def_bool y |
92 | 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 | ||
93 | 99 | ||
94 | config GENERIC_HWEIGHT | 100 | config GENERIC_HWEIGHT |
95 | def_bool y | 101 | def_bool y |
@@ -244,16 +250,19 @@ config X86_HAS_BOOT_CPU_ID | |||
244 | config SPARSE_IRQ | 250 | config SPARSE_IRQ |
245 | bool "Support sparse irq numbering" | 251 | bool "Support sparse irq numbering" |
246 | depends on PCI_MSI || HT_IRQ | 252 | depends on PCI_MSI || HT_IRQ |
247 | default y | ||
248 | help | 253 | help |
249 | This enables support for sparse irq, esp for msi/msi-x. You may need | 254 | This enables support for sparse irqs. This is useful for distro |
250 | if you have lots of cards supports msi-x installed. | 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. | ||
251 | 257 | ||
252 | If you don't know what to do here, say Y. | 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. | ||
253 | 262 | ||
254 | config NUMA_MIGRATE_IRQ_DESC | 263 | config NUMA_MIGRATE_IRQ_DESC |
255 | bool "Move irq desc when changing irq smp_affinity" | 264 | bool "Move irq desc when changing irq smp_affinity" |
256 | depends on SPARSE_IRQ && SMP | 265 | depends on SPARSE_IRQ && NUMA |
257 | default n | 266 | default n |
258 | help | 267 | help |
259 | This enables moving irq_desc to cpu/node that irq will use handled. | 268 | This enables moving irq_desc to cpu/node that irq will use handled. |
@@ -264,21 +273,13 @@ config X86_FIND_SMP_CONFIG | |||
264 | def_bool y | 273 | def_bool y |
265 | depends on X86_MPPARSE || X86_VOYAGER | 274 | depends on X86_MPPARSE || X86_VOYAGER |
266 | 275 | ||
267 | if ACPI | ||
268 | config X86_MPPARSE | 276 | config X86_MPPARSE |
269 | def_bool y | 277 | bool "Enable MPS table" if ACPI |
270 | bool "Enable MPS table" | 278 | default y |
271 | depends on X86_LOCAL_APIC | 279 | depends on X86_LOCAL_APIC |
272 | help | 280 | help |
273 | 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 |
274 | (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 |
275 | endif | ||
276 | |||
277 | if !ACPI | ||
278 | config X86_MPPARSE | ||
279 | def_bool y | ||
280 | depends on X86_LOCAL_APIC | ||
281 | endif | ||
282 | 283 | ||
283 | choice | 284 | choice |
284 | prompt "Subarchitecture Type" | 285 | prompt "Subarchitecture Type" |
@@ -500,7 +501,7 @@ config HPET_TIMER | |||
500 | The HPET provides a stable time base on SMP | 501 | The HPET provides a stable time base on SMP |
501 | systems, unlike the TSC, but it is more expensive to access, | 502 | systems, unlike the TSC, but it is more expensive to access, |
502 | 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 |
503 | <http://www.intel.com/hardwaredesign/hpetspec.htm>. | 504 | <http://www.intel.com/hardwaredesign/hpetspec_1.pdf>. |
504 | 505 | ||
505 | You can safely choose Y here. However, HPET will only be | 506 | You can safely choose Y here. However, HPET will only be |
506 | activated if the platform and the BIOS support this feature. | 507 | activated if the platform and the BIOS support this feature. |
@@ -587,7 +588,7 @@ config AMD_IOMMU | |||
587 | 588 | ||
588 | # need this always selected by IOMMU for the VIA workaround | 589 | # need this always selected by IOMMU for the VIA workaround |
589 | config SWIOTLB | 590 | config SWIOTLB |
590 | bool | 591 | def_bool y if X86_64 |
591 | help | 592 | help |
592 | Support for software bounce buffers used on x86-64 systems | 593 | Support for software bounce buffers used on x86-64 systems |
593 | which don't have a hardware IOMMU (e.g. the current generation | 594 | which don't have a hardware IOMMU (e.g. the current generation |
@@ -679,6 +680,30 @@ config X86_VISWS_APIC | |||
679 | def_bool y | 680 | def_bool y |
680 | depends on X86_32 && X86_VISWS | 681 | depends on X86_32 && X86_VISWS |
681 | 682 | ||
683 | config X86_REROUTE_FOR_BROKEN_BOOT_IRQS | ||
684 | bool "Reroute for broken boot IRQs" | ||
685 | default n | ||
686 | depends on X86_IO_APIC | ||
687 | help | ||
688 | This option enables a workaround that fixes a source of | ||
689 | spurious interrupts. This is recommended when threaded | ||
690 | interrupt handling is used on systems where the generation of | ||
691 | superfluous "boot interrupts" cannot be disabled. | ||
692 | |||
693 | Some chipsets generate a legacy INTx "boot IRQ" when the IRQ | ||
694 | entry in the chipset's IO-APIC is masked (as, e.g. the RT | ||
695 | kernel does during interrupt handling). On chipsets where this | ||
696 | boot IRQ generation cannot be disabled, this workaround keeps | ||
697 | the original IRQ line masked so that only the equivalent "boot | ||
698 | IRQ" is delivered to the CPUs. The workaround also tells the | ||
699 | kernel to set up the IRQ handler on the boot IRQ line. In this | ||
700 | way only one interrupt is delivered to the kernel. Otherwise | ||
701 | the spurious second interrupt may cause the kernel to bring | ||
702 | down (vital) interrupt lines. | ||
703 | |||
704 | Only affects "broken" chipsets. Interrupt sharing may be | ||
705 | increased on these systems. | ||
706 | |||
682 | config X86_MCE | 707 | config X86_MCE |
683 | bool "Machine Check Exception" | 708 | bool "Machine Check Exception" |
684 | depends on !X86_VOYAGER | 709 | depends on !X86_VOYAGER |
@@ -975,24 +1000,37 @@ config X86_PAE | |||
975 | config ARCH_PHYS_ADDR_T_64BIT | 1000 | config ARCH_PHYS_ADDR_T_64BIT |
976 | def_bool X86_64 || X86_PAE | 1001 | def_bool X86_64 || X86_PAE |
977 | 1002 | ||
1003 | config DIRECT_GBPAGES | ||
1004 | bool "Enable 1GB pages for kernel pagetables" if EMBEDDED | ||
1005 | default y | ||
1006 | depends on X86_64 | ||
1007 | help | ||
1008 | Allow the kernel linear mapping to use 1GB pages on CPUs that | ||
1009 | support it. This can improve the kernel's performance a tiny bit by | ||
1010 | reducing TLB pressure. If in doubt, say "Y". | ||
1011 | |||
978 | # Common NUMA Features | 1012 | # Common NUMA Features |
979 | config NUMA | 1013 | config NUMA |
980 | bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" | 1014 | bool "Numa Memory Allocation and Scheduler Support" |
981 | depends on SMP | 1015 | depends on SMP |
982 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) | 1016 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) |
983 | default n if X86_PC | 1017 | default n if X86_PC |
984 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) | 1018 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) |
985 | help | 1019 | help |
986 | Enable NUMA (Non Uniform Memory Access) support. | 1020 | Enable NUMA (Non Uniform Memory Access) support. |
1021 | |||
987 | The kernel will try to allocate memory used by a CPU on the | 1022 | The kernel will try to allocate memory used by a CPU on the |
988 | local memory controller of the CPU and add some more | 1023 | local memory controller of the CPU and add some more |
989 | NUMA awareness to the kernel. | 1024 | NUMA awareness to the kernel. |
990 | 1025 | ||
991 | For 32-bit this is currently highly experimental and should be only | 1026 | For 64-bit this is recommended if the system is Intel Core i7 |
992 | used for kernel development. It might also cause boot failures. | 1027 | (or later), AMD Opteron, or EM64T NUMA. |
993 | For 64-bit this is recommended on all multiprocessor Opteron systems. | 1028 | |
994 | If the system is EM64T, you should say N unless your system is | 1029 | For 32-bit this is only needed on (rare) 32-bit-only platforms |
995 | EM64T NUMA. | 1030 | that support NUMA topologies, such as NUMAQ / Summit, or if you |
1031 | boot a 32-bit kernel on a 64-bit NUMA platform. | ||
1032 | |||
1033 | Otherwise, you should say N. | ||
996 | 1034 | ||
997 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" | 1035 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" |
998 | depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) | 1036 | depends on X86_32 && X86_SUMMIT && (!HIGHMEM64G || !ACPI) |
@@ -1512,6 +1550,10 @@ config ARCH_ENABLE_MEMORY_HOTPLUG | |||
1512 | def_bool y | 1550 | def_bool y |
1513 | depends on X86_64 || (X86_32 && HIGHMEM) | 1551 | depends on X86_64 || (X86_32 && HIGHMEM) |
1514 | 1552 | ||
1553 | config ARCH_ENABLE_MEMORY_HOTREMOVE | ||
1554 | def_bool y | ||
1555 | depends on MEMORY_HOTPLUG | ||
1556 | |||
1515 | config HAVE_ARCH_EARLY_PFN_TO_NID | 1557 | config HAVE_ARCH_EARLY_PFN_TO_NID |
1516 | def_bool X86_64 | 1558 | def_bool X86_64 |
1517 | depends on NUMA | 1559 | depends on NUMA |