KVM: MMU: fix dirty bit setting when removing write permissions
[safe/jmp/linux-2.6] / arch / x86 / Kconfig
index 32e2671..e5790fe 100644 (file)
@@ -18,6 +18,13 @@ config X86_64
 ### Arch settings
 config X86
        def_bool y
 ### Arch settings
 config X86
        def_bool y
+       select HAVE_IDE
+       select HAVE_OPROFILE
+       select HAVE_KPROBES
+       select HAVE_KRETPROBES
+       select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
+       select HAVE_ARCH_KGDB if !X86_VOYAGER
+
 
 config GENERIC_LOCKBREAK
        def_bool n
 
 config GENERIC_LOCKBREAK
        def_bool n
@@ -44,18 +51,19 @@ config LOCKDEP_SUPPORT
 config STACKTRACE_SUPPORT
        def_bool y
 
 config STACKTRACE_SUPPORT
        def_bool y
 
-config SEMAPHORE_SLEEPERS
+config HAVE_LATENCYTOP_SUPPORT
        def_bool y
 
        def_bool y
 
+config FAST_CMPXCHG_LOCAL
+       bool
+       default y
+
 config MMU
        def_bool y
 
 config ZONE_DMA
        def_bool y
 
 config MMU
        def_bool y
 
 config ZONE_DMA
        def_bool y
 
-config QUICKLIST
-       def_bool X86_32
-
 config SBUS
        bool
 
 config SBUS
        bool
 
@@ -93,6 +101,9 @@ config ARCH_HAS_ILOG2_U32
 config ARCH_HAS_ILOG2_U64
        def_bool n
 
 config ARCH_HAS_ILOG2_U64
        def_bool n
 
+config ARCH_HAS_CPU_IDLE_WAIT
+       def_bool y
+
 config GENERIC_CALIBRATE_DELAY
        def_bool y
 
 config GENERIC_CALIBRATE_DELAY
        def_bool y
 
@@ -100,13 +111,22 @@ config GENERIC_TIME_VSYSCALL
        bool
        default X86_64
 
        bool
        default X86_64
 
+config ARCH_HAS_CPU_RELAX
+       def_bool y
+
 config HAVE_SETUP_PER_CPU_AREA
 config HAVE_SETUP_PER_CPU_AREA
-       def_bool X86_64
+       def_bool X86_64 || (X86_SMP && !X86_VOYAGER)
 
 
-config ARCH_SUPPORTS_OPROFILE
-       bool
-       default y
+config HAVE_CPUMASK_OF_CPU_MAP
+       def_bool X86_64_SMP
 
 
+config ARCH_HIBERNATION_POSSIBLE
+       def_bool y
+       depends on !SMP || !X86_VOYAGER
+
+config ARCH_SUSPEND_POSSIBLE
+       def_bool y
+       depends on !X86_VOYAGER
 
 config ZONE_DMA32
        bool
 
 config ZONE_DMA32
        bool
@@ -119,6 +139,12 @@ config AUDIT_ARCH
        bool
        default X86_64
 
        bool
        default X86_64
 
+config ARCH_SUPPORTS_AOUT
+       def_bool y
+
+config ARCH_SUPPORTS_OPTIMIZED_INLINING
+       def_bool y
+
 # Use the generic interrupt handling code in kernel/irq/:
 config GENERIC_HARDIRQS
        bool
 # Use the generic interrupt handling code in kernel/irq/:
 config GENERIC_HARDIRQS
        bool
@@ -149,7 +175,7 @@ config X86_64_SMP
 config X86_HT
        bool
        depends on SMP
 config X86_HT
        bool
        depends on SMP
-       depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || (X86_64 && !MK8)
+       depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || X86_64
        default y
 
 config X86_BIOS_REBOOT
        default y
 
 config X86_BIOS_REBOOT
@@ -159,7 +185,7 @@ config X86_BIOS_REBOOT
 
 config X86_TRAMPOLINE
        bool
 
 config X86_TRAMPOLINE
        bool
-       depends on X86_SMP || (X86_VOYAGER && SMP)
+       depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP)
        default y
 
 config KTIME_SCALAR
        default y
 
 config KTIME_SCALAR
@@ -192,8 +218,7 @@ config SMP
          Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
          Management" code will be disabled if you say Y here.
 
          Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
          Management" code will be disabled if you say Y here.
 
-         See also the <file:Documentation/smp.txt>,
-         <file:Documentation/i386/IO-APIC.txt>,
+         See also <file:Documentation/i386/IO-APIC.txt>,
          <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
          <http://www.tldp.org/docs.html#howto>.
 
          <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
          <http://www.tldp.org/docs.html#howto>.
 
@@ -220,8 +245,7 @@ config X86_ELAN
 
 config X86_VOYAGER
        bool "Voyager (NCR)"
 
 config X86_VOYAGER
        bool "Voyager (NCR)"
-       depends on X86_32
-       select SMP if !BROKEN
+       depends on X86_32 && (SMP || BROKEN)
        help
          Voyager is an MCA-based 32-way capable SMP architecture proprietary
          to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
        help
          Voyager is an MCA-based 32-way capable SMP architecture proprietary
          to NCR Corp.  Machine classes 345x/35xx/4100/51xx are Voyager-based.
@@ -233,9 +257,8 @@ config X86_VOYAGER
 
 config X86_NUMAQ
        bool "NUMAQ (IBM/Sequent)"
 
 config X86_NUMAQ
        bool "NUMAQ (IBM/Sequent)"
-       select SMP
+       depends on SMP && X86_32
        select NUMA
        select NUMA
-       depends on X86_32
        help
          This option is used for getting Linux to run on a (IBM/Sequent) NUMA
          multiquad box. This changes the way that processors are bootstrapped,
        help
          This option is used for getting Linux to run on a (IBM/Sequent) NUMA
          multiquad box. This changes the way that processors are bootstrapped,
@@ -291,10 +314,24 @@ config X86_ES7000
          Only choose this option if you have such a system, otherwise you
          should say N here.
 
          Only choose this option if you have such a system, otherwise you
          should say N here.
 
+config X86_RDC321X
+       bool "RDC R-321x SoC"
+       depends on X86_32
+       select M486
+       select X86_REBOOTFIXUPS
+       select GENERIC_GPIO
+       select LEDS_CLASS
+       select LEDS_GPIO
+       help
+         This option is needed for RDC R-321x system-on-chip, also known
+         as R-8610-(G).
+         If you don't have one of these chips, you should say N here.
+
 config X86_VSMP
        bool "Support for ScaleMP vSMP"
 config X86_VSMP
        bool "Support for ScaleMP vSMP"
-       depends on X86_64 && PCI
-        help
+       select PARAVIRT
+       depends on X86_64
+       help
          Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
          supposed to run on these EM64T-based machines.  Only choose this option
          if you have one of these machines.
          Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
          supposed to run on these EM64T-based machines.  Only choose this option
          if you have one of these machines.
@@ -336,6 +373,25 @@ config VMI
          at the moment), by linking the kernel to a GPL-ed ROM module
          provided by the hypervisor.
 
          at the moment), by linking the kernel to a GPL-ed ROM module
          provided by the hypervisor.
 
+config KVM_CLOCK
+       bool "KVM paravirtualized clock"
+       select PARAVIRT
+       depends on !(X86_VISWS || X86_VOYAGER)
+       help
+         Turning on this option will allow you to run a paravirtualized clock
+         when running over the KVM hypervisor. Instead of relying on a PIT
+         (or probably other) emulation by the underlying device model, the host
+         provides the guest with timing infrastructure such as time of day, and
+         system time
+
+config KVM_GUEST
+       bool "KVM Guest support"
+       select PARAVIRT
+       depends on !(X86_VISWS || X86_VOYAGER)
+       help
+        This option enables various optimizations for running under the KVM
+        hypervisor.
+
 source "arch/x86/lguest/Kconfig"
 
 config PARAVIRT
 source "arch/x86/lguest/Kconfig"
 
 config PARAVIRT
@@ -349,6 +405,35 @@ config PARAVIRT
 
 endif
 
 
 endif
 
+config MEMTEST_BOOTPARAM
+       bool "Memtest boot parameter"
+       depends on X86_64
+       default y
+       help
+         This option adds a kernel parameter 'memtest', which allows memtest
+         to be disabled at boot.  If this option is selected, memtest
+         functionality can be disabled with memtest=0 on the kernel
+         command line.  The purpose of this option is to allow a single
+         kernel image to be distributed with memtest built in, but not
+         necessarily enabled.
+
+         If you are unsure how to answer this question, answer Y.
+
+config MEMTEST_BOOTPARAM_VALUE
+       int "Memtest boot parameter default value (0-4)"
+       depends on MEMTEST_BOOTPARAM
+       range 0 4
+       default 0
+       help
+         This option sets the default value for the kernel parameter
+         'memtest', which allows memtest to be disabled at boot.  If this
+         option is set to 0 (zero), the memtest kernel parameter will
+         default to 0, disabling memtest at bootup.  If this option is
+         set to 4, the memtest kernel parameter will default to 4,
+         enabling memtest at bootup, and use that as pattern number.
+
+         If you are unsure how to answer this question, answer 0.
+
 config ACPI_SRAT
        def_bool y
        depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
 config ACPI_SRAT
        def_bool y
        depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
@@ -393,7 +478,7 @@ config HPET_TIMER
 
 config HPET_EMULATE_RTC
        def_bool y
 
 config HPET_EMULATE_RTC
        def_bool y
-       depends on HPET_TIMER && (RTC=y || RTC=m)
+       depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
 
 # Mark as embedded because too many people got it wrong.
 # The code disables itself when not needed.
 
 # Mark as embedded because too many people got it wrong.
 # The code disables itself when not needed.
@@ -443,6 +528,9 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
          Calgary anyway, pass 'iommu=calgary' on the kernel command line.
          If unsure, say Y.
 
          Calgary anyway, pass 'iommu=calgary' on the kernel command line.
          If unsure, say Y.
 
+config IOMMU_HELPER
+       def_bool (CALGARY_IOMMU || GART_IOMMU)
+
 # need this always selected by IOMMU for the VIA workaround
 config SWIOTLB
        bool
 # need this always selected by IOMMU for the VIA workaround
 config SWIOTLB
        bool
@@ -470,7 +558,7 @@ config NR_CPUS
 
 config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
 
 config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
-       depends on (X86_64 && SMP) || (X86_32 && X86_HT)
+       depends on X86_HT
        help
          SMT scheduler support improves the CPU scheduler's decision making
          when dealing with Intel Pentium 4 chips with HyperThreading at a
        help
          SMT scheduler support improves the CPU scheduler's decision making
          when dealing with Intel Pentium 4 chips with HyperThreading at a
@@ -480,7 +568,7 @@ config SCHED_SMT
 config SCHED_MC
        def_bool y
        prompt "Multi-core scheduler support"
 config SCHED_MC
        def_bool y
        prompt "Multi-core scheduler support"
-       depends on (X86_64 && SMP) || (X86_32 && X86_HT)
+       depends on X86_HT
        help
          Multi-core scheduler support improves the CPU scheduler's decision
          making when dealing with multi-core CPU chips at a cost of slightly
        help
          Multi-core scheduler support improves the CPU scheduler's decision
          making when dealing with multi-core CPU chips at a cost of slightly
@@ -606,7 +694,6 @@ config TOSHIBA
 
 config I8K
        tristate "Dell laptop support"
 
 config I8K
        tristate "Dell laptop support"
-       depends on X86_32
        ---help---
          This adds a driver to safely access the System Management Mode
          of the CPU on the Dell Inspiron 8000. The System Management Mode
        ---help---
          This adds a driver to safely access the System Management Mode
          of the CPU on the Dell Inspiron 8000. The System Management Mode
@@ -637,7 +724,7 @@ config X86_REBOOTFIXUPS
          system.
 
          Currently, the only fixup is for the Geode machines using
          system.
 
          Currently, the only fixup is for the Geode machines using
-         CS5530A and CS5536 chipsets.
+         CS5530A and CS5536 chipsets and the RDC R-321x SoC.
 
          Say Y if you want to enable the fixup. Currently, it's safe to
          enable this option even if you don't need it.
 
          Say Y if you want to enable the fixup. Currently, it's safe to
          enable this option even if you don't need it.
@@ -841,6 +928,15 @@ config X86_64_ACPI_NUMA
        help
          Enable ACPI SRAT based node topology detection.
 
        help
          Enable ACPI SRAT based node topology detection.
 
+# Some NUMA nodes have memory ranges that span
+# other nodes.  Even though a pfn is valid and
+# between a node's start and end pfns, it may not
+# reside on that node.  See memmap_init_zone()
+# for details.
+config NODES_SPAN_OTHER_NODES
+       def_bool y
+       depends on X86_64_ACPI_NUMA
+
 config NUMA_EMU
        bool "NUMA emulation"
        depends on X86_64 && NUMA
 config NUMA_EMU
        bool "NUMA emulation"
        depends on X86_64 && NUMA
@@ -850,7 +946,7 @@ config NUMA_EMU
          number of nodes. This is only useful for debugging.
 
 config NODES_SHIFT
          number of nodes. This is only useful for debugging.
 
 config NODES_SHIFT
-       int
+       int "Max num nodes shift(1-15)"
        range 1 15  if X86_64
        default "6" if X86_64
        default "4" if X86_NUMAQ
        range 1 15  if X86_64
        default "6" if X86_64
        default "4" if X86_NUMAQ
@@ -974,6 +1070,21 @@ config MTRR
 
          See <file:Documentation/mtrr.txt> for more information.
 
 
          See <file:Documentation/mtrr.txt> for more information.
 
+config X86_PAT
+       bool
+       prompt "x86 PAT support"
+       depends on MTRR
+       help
+         Use PAT attributes to setup page level cache control.
+
+         PATs are the modern equivalents of MTRRs and are much more
+         flexible than MTRRs.
+
+         Say N here if you see bootup problems (boot crash, boot hang,
+         spontaneous reboots) or a non-working video driver.
+
+         If unsure, say Y.
+
 config EFI
        def_bool n
        prompt "EFI runtime service support"
 config EFI
        def_bool n
        prompt "EFI runtime service support"
@@ -997,12 +1108,6 @@ config IRQBALANCE
          The default yes will allow the kernel to do irq load balancing.
          Saying no will keep the kernel from doing irq load balancing.
 
          The default yes will allow the kernel to do irq load balancing.
          Saying no will keep the kernel from doing irq load balancing.
 
-# turning this on wastes a bunch of space.
-# Summit needs it only when NUMA is on
-config BOOT_IOREMAP
-       def_bool y
-       depends on X86_32 && (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
-
 config SECCOMP
        def_bool y
        prompt "Enable seccomp to safely compute untrusted bytecode"
 config SECCOMP
        def_bool y
        prompt "Enable seccomp to safely compute untrusted bytecode"
@@ -1022,7 +1127,7 @@ config SECCOMP
 
 config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
 
 config CC_STACKPROTECTOR
        bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
-       depends on X86_64 && EXPERIMENTAL
+       depends on X86_64 && EXPERIMENTAL && BROKEN
        help
          This option turns on the -fstack-protector GCC feature. This
          feature puts, at the beginning of critical functions, a canary
        help
          This option turns on the -fstack-protector GCC feature. This
          feature puts, at the beginning of critical functions, a canary
@@ -1048,6 +1153,7 @@ source kernel/Kconfig.hz
 
 config KEXEC
        bool "kexec system call"
 
 config KEXEC
        bool "kexec system call"
+       depends on X86_64 || X86_BIOS_REBOOT
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
        help
          kexec is a system call that implements the ability to shutdown your
          current kernel, and to start another kernel.  It is like a reboot
@@ -1229,7 +1335,7 @@ menuconfig APM
          machines with more than one CPU.
 
          In order to use APM, you will need supporting software. For location
          machines with more than one CPU.
 
          In order to use APM, you will need supporting software. For location
-         and more information, read <file:Documentation/pm.txt> and the
+         and more information, read <file:Documentation/power/pm.txt> and the
          Battery Powered Linux mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.
 
          Battery Powered Linux mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.
 
@@ -1349,7 +1455,7 @@ endmenu
 menu "Bus options (PCI etc.)"
 
 config PCI
 menu "Bus options (PCI etc.)"
 
 config PCI
-       bool "PCI support" if !X86_VISWS
+       bool "PCI support" if !X86_VISWS && !X86_VSMP
        depends on !X86_VOYAGER
        default y
        select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
        depends on !X86_VOYAGER
        default y
        select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC)
@@ -1359,11 +1465,6 @@ config PCI
          your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
          VESA. If you have PCI, say Y, otherwise N.
 
          your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
          VESA. If you have PCI, say Y, otherwise N.
 
-         The PCI-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>, contains valuable
-         information about which PCI hardware does work under Linux and which
-         doesn't.
-
 choice
        prompt "PCI access mode"
        depends on X86_32 && PCI && !X86_VISWS
 choice
        prompt "PCI access mode"
        depends on X86_32 && PCI && !X86_VISWS
@@ -1557,7 +1658,7 @@ config IA32_EMULATION
 
 config IA32_AOUT
        tristate "IA32 a.out support"
 
 config IA32_AOUT
        tristate "IA32 a.out support"
-       depends on IA32_EMULATION
+       depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT
        help
          Support old a.out binaries in the 32bit emulation.
 
        help
          Support old a.out binaries in the 32bit emulation.
 
@@ -1584,12 +1685,12 @@ source "drivers/firmware/Kconfig"
 
 source "fs/Kconfig"
 
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
 
 source "crypto/Kconfig"
 
 source "arch/x86/Kconfig.debug"
 
 source "security/Kconfig"
 
 source "crypto/Kconfig"
 
+source "arch/x86/kvm/Kconfig"
+
 source "lib/Kconfig"
 source "lib/Kconfig"