Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / arch / x86_64 / Kconfig
index 1c07776..0d916b2 100644 (file)
@@ -4,7 +4,7 @@
 #
 # Note: ISA is disabled and will hopefully never be enabled.
 # If you managed to buy an ISA x86-64 box you'll have to fix all the
-# ISA drivers you need yourself. 
+# ISA drivers you need yourself.
 #
 
 mainmenu "Linux Kernel Configuration"
@@ -24,6 +24,19 @@ config X86
        bool
        default y
 
+config LOCKDEP_SUPPORT
+       bool
+       default y
+
+config STACKTRACE_SUPPORT
+       bool
+       depends on !X86_64_XEN
+       default y
+
+config SEMAPHORE_SLEEPERS
+       bool
+       default y
+
 config MMU
        bool
        default y
@@ -41,6 +54,14 @@ config RWSEM_GENERIC_SPINLOCK
 config RWSEM_XCHGADD_ALGORITHM
        bool
 
+config GENERIC_HWEIGHT
+       bool
+       default y
+
+config GENERIC_CALIBRATE_DELAY
+       bool
+       default y
+
 config X86_CMPXCHG
        bool
        default y
@@ -48,33 +69,24 @@ config X86_CMPXCHG
 config EARLY_PRINTK
        bool
        default y
-       help
-         Write kernel log output directly into the VGA buffer or to a serial
-         port.
-
-         This is useful for kernel debugging when your machine crashes very
-         early before the console code is initialized. For normal operation
-         it is not recommended because it looks ugly and doesn't cooperate
-         with klogd/syslogd or the X server. You should normally N here,
-         unless you want to debug such a crash.
-         
-config HPET_TIMER
+
+config GENERIC_ISA_DMA
        bool
        default y
-       help
-         Use the IA-PC HPET (High Precision Event Timer) to manage
-         time in preference to the PIT and RTC, if a HPET is
-         present.  The HPET provides a stable time base on SMP
-         systems, unlike the RTC, but it is more expensive to access,
-         as it is off-chip.  You can find the HPET spec at
-         <http://www.intel.com/labs/platcomp/hpet/hpetspec.htm>.
 
-         If unsure, say Y.
+config GENERIC_IOMAP
+       bool
+       default y
 
-config HPET_EMULATE_RTC
-       def_bool HPET_TIMER && RTC=y
+config ARCH_MAY_HAVE_PC_FDC
+       bool
+       default y
 
-config GENERIC_ISA_DMA
+config DMI
+       bool
+       default y
+
+config AUDIT_ARCH
        bool
        default y
 
@@ -83,6 +95,24 @@ source "init/Kconfig"
 
 menu "Processor type and features"
 
+choice
+       prompt "Subarchitecture Type"
+       default X86_PC
+
+config X86_PC
+       bool "PC-compatible"
+       help
+         Choose this option if your computer is a standard PC or compatible.
+
+config X86_VSMP
+       bool "Support for ScaleMP vSMP"
+        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.
+
+endchoice
+
 choice
        prompt "Processor family"
        default MK8
@@ -90,14 +120,15 @@ choice
 config MK8
        bool "AMD-Opteron/Athlon64"
        help
-         Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs. 
+         Optimize for AMD Opteron/Athlon64/Hammer/K8 CPUs.
 
 config MPSC
-       bool "Intel x86-64" 
+       bool "Intel EM64T"
        help
-         Optimize for Intel IA32 with 64bit extension CPUs
-         (Prescott/Nocona/Potomac)
-       
+         Optimize for Intel Pentium 4 and Xeon CPUs with Intel
+         Extended Memory 64 Technology(EM64T). For details see
+         <http://www.intel.com/technology/64bitextensions/>.
+
 config GENERIC_CPU
        bool "Generic-x86-64"
        help
@@ -105,6 +136,22 @@ config GENERIC_CPU
 
 endchoice
 
+config X86_64_XEN
+       bool "Enable Xen compatible kernel"
+       select SWIOTLB
+       help
+         This option will compile a kernel compatible with Xen hypervisor
+
+config X86_NO_TSS
+       bool
+       depends on X86_64_XEN
+       default y
+
+config X86_NO_IDT
+       bool
+       depends on X86_64_XEN
+       default y
+
 #
 # Define implied options from the CPU selection here
 #
@@ -118,8 +165,14 @@ config X86_L1_CACHE_SHIFT
        default "7" if GENERIC_CPU || MPSC
        default "6" if MK8
 
+config X86_INTERNODE_CACHE_BYTES
+       int
+       default "4096" if X86_VSMP
+       default X86_L1_CACHE_BYTES if !X86_VSMP
+
 config X86_TSC
        bool
+       depends on !X86_64_XEN
        default y
 
 config X86_GOOD_APIC
@@ -130,8 +183,8 @@ config MICROCODE
        tristate "/dev/cpu/microcode - Intel CPU microcode support"
        ---help---
          If you say Y here the 'File systems' section, you will be
-         able to update the microcode on Intel processors. You will 
-         obviously need the actual microcode binary data itself which is 
+         able to update the microcode on Intel processors. You will
+         obviously need the actual microcode binary data itself which is
          not shipped with the Linux kernel.
 
          For latest news and information on obtaining all the required
@@ -160,12 +213,11 @@ config X86_CPUID
          with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
          /dev/cpu/31/cpuid.
 
-# disable it for opteron optimized builds because it pulls in ACPI_BOOT
 config X86_HT
        bool
-       depends on SMP && !MK8
+       depends on SMP && !MK8 && !X86_64_XEN
        default y
-       
+
 config MATH_EMULATION
        bool
 
@@ -177,14 +229,22 @@ config EISA
 
 config X86_IO_APIC
        bool
+       depends !XEN_UNPRIVILEGED_GUEST
        default y
 
+config X86_XEN_GENAPIC
+       bool
+       depends X86_64_XEN
+       default XEN_PRIVILEGED_GUEST || SMP
+
 config X86_LOCAL_APIC
        bool
+       depends !XEN_UNPRIVILEGED_GUEST
        default y
 
 config MTRR
        bool "MTRR (Memory Type Range Register) support"
+       depends on !XEN_UNPRIVILEGED_GUEST
        ---help---
          On Intel P6 family processors (Pentium Pro, Pentium II and later)
          the Memory Type Range Registers (MTRRs) may be used to control
@@ -223,107 +283,321 @@ config SMP
 
          If you don't know what to do here, say N.
 
-config PREEMPT
-       bool "Preemptible Kernel"
-       ---help---
-         This option reduces the latency of the kernel when reacting to
-         real-time or interactive events by allowing a low priority process to
-         be preempted even if it is in kernel mode executing a system call.
-         This allows applications to run more reliably even when the system is
-         under load. On contrary it may also break your drivers and add
-         priority inheritance problems to your system. Don't select it if 
-         you rely on a stable system or have slightly obscure hardware.
-         It's also not very well tested on x86-64 currently.
-         You have been warned.
-
-         Say Y here if you are feeling brave and building a kernel for a 
-         desktop, embedded or real-time system.  Say N if you are unsure. 
-
 config SCHED_SMT
        bool "SMT (Hyperthreading) scheduler support"
-       depends on SMP
-       default off
+       depends on SMP && !X86_64_XEN
+       default n
        help
          SMT scheduler support improves the CPU scheduler's decision making
          when dealing with Intel Pentium 4 chips with HyperThreading at a
          cost of slightly increased overhead in some places. If unsure say
          N here.
 
+config SCHED_MC
+       bool "Multi-core scheduler support"
+       depends on SMP && !X86_64_XEN
+       default y
+       help
+         Multi-core scheduler support improves the CPU scheduler's decision
+         making when dealing with multi-core CPU chips at a cost of slightly
+         increased overhead in some places. If unsure say N here.
+
+source "kernel/Kconfig.preempt"
+
+config NUMA
+       bool "Non Uniform Memory Access (NUMA) Support"
+       depends on SMP && !X86_64_XEN
+       help
+        Enable NUMA (Non Uniform Memory Access) support. The kernel 
+        will try to allocate memory used by a CPU on the local memory 
+        controller of the CPU and add some more NUMA awareness to the kernel.
+        This code is recommended on all multiprocessor Opteron systems.
+        If the system is EM64T, you should say N unless your system is EM64T 
+        NUMA. 
+
 config K8_NUMA
-       bool "K8 NUMA support"
-       depends on SMP
+       bool "Old style AMD Opteron NUMA detection"
+       depends on NUMA
+       default y
        help
-         Enable NUMA (Non Unified Memory Architecture) support for
-         AMD Opteron Multiprocessor systems. The kernel will try to allocate
-         memory used by a CPU on the local memory controller of the CPU
-         and add some more NUMA awareness to the kernel.
-         This code is recommended on all multiprocessor Opteron systems
-         and normally doesn't hurt on others.
-
-config DISCONTIGMEM
-       bool
-       depends on K8_NUMA
+        Enable K8 NUMA node topology detection.  You should say Y here if
+        you have a multi processor AMD K8 system. This uses an old
+        method to read the NUMA configurtion directly from the builtin
+        Northbridge of Opteron. It is recommended to use X86_64_ACPI_NUMA
+        instead, which also takes priority if both are compiled in.   
+
+config NODES_SHIFT
+       int
+       default "6"
+       depends on NEED_MULTIPLE_NODES
+
+# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
+
+config X86_64_ACPI_NUMA
+       bool "ACPI NUMA detection"
+       depends on NUMA
+       select ACPI 
+       select PCI
+       select ACPI_NUMA
        default y
+       help
+        Enable ACPI SRAT based node topology detection.
 
-config NUMA
+config NUMA_EMU
+       bool "NUMA emulation"
+       depends on NUMA
+       help
+         Enable NUMA emulation. A flat machine will be split
+         into virtual nodes when booted with "numa=fake=N", where N is the
+         number of nodes. This is only useful for debugging.
+
+config ARCH_DISCONTIGMEM_ENABLE
        bool
-       depends on K8_NUMA
+       depends on NUMA
        default y
 
-config HAVE_DEC_LOCK
-       bool
-       depends on SMP
-       default y
 
-# actually 64 maximum, but you need to fix the APIC code first
-# to use clustered mode or whatever your big iron needs
+config ARCH_DISCONTIGMEM_ENABLE
+       def_bool y
+       depends on NUMA
+
+config ARCH_DISCONTIGMEM_DEFAULT
+       def_bool y
+       depends on NUMA
+
+config ARCH_SPARSEMEM_ENABLE
+       def_bool y
+       depends on (NUMA || EXPERIMENTAL) && !X86_64_XEN
+
+config ARCH_MEMORY_PROBE
+       def_bool y
+       depends on MEMORY_HOTPLUG
+
+config ARCH_FLATMEM_ENABLE
+       def_bool y
+       depends on !NUMA
+
+source "mm/Kconfig"
+
+config HAVE_ARCH_EARLY_PFN_TO_NID
+       def_bool y
+       depends on NUMA
+
+config OUT_OF_LINE_PFN_TO_PAGE
+       def_bool y
+       depends on DISCONTIGMEM
+
 config NR_CPUS
-       int "Maximum number of CPUs (2-8)"
-       range 2 8
+       int "Maximum number of CPUs (2-256)"
+       range 2 255
        depends on SMP
+       default "16" if X86_64_XEN
        default "8"
        help
          This allows you to specify the maximum number of CPUs which this
-         kernel will support.  The maximum supported value is 32 and the
-         minimum value which makes sense is 2.
+         kernel will support. Current maximum is 256 CPUs due to
+         APIC addressing limits. Less depending on the hardware.
 
          This is purely to save memory - each supported CPU requires
          memory in the static kernel configuration.
 
-config GART_IOMMU
-       bool "IOMMU support"
+config HOTPLUG_CPU
+       bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
+       depends on SMP && HOTPLUG && EXPERIMENTAL
        help
-         Support the K8 IOMMU. Needed to run systems with more than 4GB of memory
-         properly with 32-bit PCI devices that do not support DAC (Double Address
-         Cycle). The IOMMU can be turned off at runtime with the iommu=off parameter.
-         Normally the kernel will take the right choice by itself.
-         If unsure say Y 
+               Say Y here to experiment with turning CPUs off and on.  CPUs
+               can be controlled through /sys/devices/system/cpu/cpu#.
+               Say N if you want to disable CPU hotplug.
 
-# need this always enabled with GART_IOMMU for the VIA workaround
-config SWIOTLB
-       bool
-       depends on GART_IOMMU
-       default y
+config ARCH_ENABLE_MEMORY_HOTPLUG
+       def_bool y
 
-config DUMMY_IOMMU
+config HPET_TIMER
        bool
-       depends on !GART_IOMMU && !SWIOTLB
+       depends on !X86_64_XEN
        default y
        help
-         Don't use IOMMU code. This will cause problems when you have more than 4GB 
-         of memory and any 32-bit devices. Don't turn on unless you know what you
-         are doing.
+         Use the IA-PC HPET (High Precision Event Timer) to manage
+         time in preference to the PIT and RTC, if a HPET is
+         present.  The HPET provides a stable time base on SMP
+         systems, unlike the TSC, but it is more expensive to access,
+         as it is off-chip.  You can find the HPET spec at
+         <http://www.intel.com/hardwaredesign/hpetspec.htm>.
 
-config X86_MCE
+config HPET_EMULATE_RTC
+       bool "Provide RTC interrupt"
+       depends on HPET_TIMER && RTC=y
+
+# Mark as embedded because too many people got it wrong.
+# The code disables itself when not needed.
+config IOMMU
+       bool "IOMMU support" if EMBEDDED
+       default y
+       select SWIOTLB
+       select AGP
+       depends on PCI && !X86_64_XEN
+       help
+         Support for full DMA access of devices with 32bit memory access only
+         on systems with more than 3GB. This is usually needed for USB,
+         sound, many IDE/SATA chipsets and some other devices.
+         Provides a driver for the AMD Athlon64/Opteron/Turion/Sempron GART
+         based IOMMU and a software bounce buffer based IOMMU used on Intel
+         systems and as fallback.
+         The code is only active when needed (enough memory and limited
+         device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified
+         too.
+
+config CALGARY_IOMMU
+       bool "IBM Calgary IOMMU support"
+       default y
+       select SWIOTLB
+       depends on PCI && EXPERIMENTAL
+       help
+         Support for hardware IOMMUs in IBM's xSeries x366 and x460
+         systems. Needed to run systems with more than 3GB of memory
+         properly with 32-bit PCI devices that do not support DAC
+         (Double Address Cycle). Calgary also supports bus level
+         isolation, where all DMAs pass through the IOMMU.  This
+         prevents them from going anywhere except their intended
+         destination. This catches hard-to-find kernel bugs and
+         mis-behaving drivers and devices that do not use the DMA-API
+         properly to set up their DMA buffers.  The IOMMU can be
+         turned off at boot time with the iommu=off parameter.
+         Normally the kernel will make the right choice by itself.
+         If unsure, say Y.
+
+# need this always selected by IOMMU for the VIA workaround
+config SWIOTLB
        bool
+
+config X86_MCE
+       bool "Machine check support" if EMBEDDED
+       depends on !X86_64_XEN
+       default y
+       help
+          Include a machine check error handler to report hardware errors.
+          This version will require the mcelog utility to decode some
+          machine check error logs. See
+          ftp://ftp.x86-64.org/pub/linux/tools/mcelog
+
+config X86_MCE_INTEL
+       bool "Intel MCE features"
+       depends on X86_MCE && X86_LOCAL_APIC
+       default y
+       help
+          Additional support for intel specific MCE features such as
+          the thermal monitor.
+
+config X86_MCE_AMD
+       bool "AMD MCE features"
+       depends on X86_MCE && X86_LOCAL_APIC
+       default y
+       help
+          Additional support for AMD specific MCE features such as
+          the DRAM Error Threshold.
+
+config KEXEC
+       bool "kexec system call (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && !X86_64_XEN
+       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
+         but it is independent of the system firmware.   And like a reboot
+         you can start any kernel with it, not just Linux.
+
+         The name comes from the similarity to the exec system call.
+
+         It is an ongoing process to be certain the hardware in a machine
+         is properly shutdown, so do not be surprised if this code does not
+         initially work for you.  It may help to enable device hotplugging
+         support.  As of this writing the exact hardware interface is
+         strongly in flux, so no good recommendation can be made.
+
+config CRASH_DUMP
+       bool "kernel crash dumps (EXPERIMENTAL)"
+       depends on EXPERIMENTAL
+       help
+               Generate crash dump after being started by kexec.
+
+config PHYSICAL_START
+       hex "Physical address where the kernel is loaded" if (EMBEDDED || CRASH_DUMP)
+       default "0x1000000" if CRASH_DUMP
+       default "0x200000"
+       help
+         This gives the physical address where the kernel is loaded. Normally
+         for regular kernels this value is 0x200000 (2MB). But in the case
+         of kexec on panic the fail safe kernel needs to run at a different
+         address than the panic-ed kernel. This option is used to set the load
+         address for kernels used to capture crash dump on being kexec'ed
+         after panic. The default value for crash dump kernels is
+         0x1000000 (16MB). This can also be set based on the "X" value as
+         specified in the "crashkernel=YM@XM" command line boot parameter
+         passed to the panic-ed kernel. Typically this parameter is set as
+         crashkernel=64M@16M. Please take a look at
+         Documentation/kdump/kdump.txt for more details about crash dumps.
+
+         Don't change this unless you know what you are doing.
+
+config SECCOMP
+       bool "Enable seccomp to safely compute untrusted bytecode"
+       depends on PROC_FS
        default y
+       help
+         This kernel feature is useful for number crunching applications
+         that may need to compute untrusted bytecode during their
+         execution. By using pipes or other transports made available to
+         the process as file descriptors supporting the read/write
+         syscalls, it's possible to isolate those applications in
+         their own address space using seccomp. Once seccomp is
+         enabled via /proc/<pid>/seccomp, it cannot be disabled
+         and the task is only allowed to execute a few safe syscalls
+         defined by each seccomp mode.
+
+         If unsure, say Y. Only embedded should say N here.
+
+source kernel/Kconfig.hz
+
+config REORDER
+       bool "Function reordering"
+       default n
+       help
+         This option enables the toolchain to reorder functions for a more 
+         optimal TLB usage. If you have pretty much any version of binutils, 
+        this can increase your kernel build time by roughly one minute.
+
+config K8_NB
+       def_bool y
+       depends on AGP_AMD64 || IOMMU || (PCI && NUMA)
 
 endmenu
 
+#
+# Use the generic interrupt handling code in kernel/irq/:
+#
+config GENERIC_HARDIRQS
+       bool
+       default y
+
+config GENERIC_IRQ_PROBE
+       bool
+       default y
+
+# we have no ISA slots, but we do have ISA-style DMA.
+config ISA_DMA_API
+       bool
+       default y
+
+config GENERIC_PENDING_IRQ
+       bool
+       depends on GENERIC_HARDIRQS && SMP
+       default y
 
 menu "Power management options"
+       depends on !XEN_UNPRIVILEGED_GUEST
 
+if !X86_64_XEN
 source kernel/power/Kconfig
+endif
 
 source "drivers/acpi/Kconfig"
 
@@ -336,16 +610,32 @@ menu "Bus options (PCI etc.)"
 config PCI
        bool "PCI support"
 
-# x86-64 doesn't support PCI BIOS access from long mode so always go direct. 
+# x86-64 doesn't support PCI BIOS access from long mode so always go direct.
 config PCI_DIRECT
        bool
        depends on PCI
        default y
 
-config PCI_MMCONFIG 
-       bool "Support mmconfig PCI config space access" 
-       depends on PCI
-       select ACPI_BOOT
+config PCI_MMCONFIG
+       bool "Support mmconfig PCI config space access"
+       depends on PCI && ACPI
+
+config XEN_PCIDEV_FRONTEND
+       bool "Xen PCI Frontend"
+       depends on PCI && X86_64_XEN
+       default y
+       help
+         The PCI device frontend driver allows the kernel to import arbitrary
+         PCI devices from a PCI backend to support PCI driver domains.
+
+config XEN_PCIDEV_FE_DEBUG
+       bool "Xen PCI Frontend Debugging"
+       depends on XEN_PCIDEV_FRONTEND
+       default n
+       help
+         Enables some debug statements within the PCI Frontend.
+
+source "drivers/pci/pcie/Kconfig"
 
 source "drivers/pci/Kconfig"
 
@@ -368,7 +658,7 @@ config IA32_EMULATION
          left.
 
 config IA32_AOUT
-       bool "IA32 a.out support"
+       tristate "IA32 a.out support"
        depends on IA32_EMULATION
        help
          Support old a.out binaries in the 32bit emulation.
@@ -383,127 +673,40 @@ config SYSVIPC_COMPAT
        depends on COMPAT && SYSVIPC
        default y
 
-config UID16
-       bool
-       depends on IA32_EMULATION
-       default y
-
 endmenu
 
+source "net/Kconfig"
+
 source drivers/Kconfig
 
 source "drivers/firmware/Kconfig"
 
 source fs/Kconfig
 
-source "arch/x86_64/oprofile/Kconfig"
-
-menu "Kernel hacking"
-
-config DEBUG_KERNEL
-       bool "Kernel debugging"
-       help
-         Say Y here if you are developing drivers or trying to debug and
-         identify kernel problems.
+menu "Instrumentation Support"
+        depends on EXPERIMENTAL
 
-config DEBUG_SLAB
-       bool "Debug memory allocations"
-       depends on DEBUG_KERNEL
-       help
-         Say Y here to have the kernel do limited verification on memory
-         allocation as well as poisoning memory on free to catch use of freed
-         memory.
-
-config MAGIC_SYSRQ
-       bool "Magic SysRq key"
-       help
-         If you say Y here, you will have some control over the system even
-         if the system crashes for example during kernel debugging (e.g., you
-         will be able to flush the buffer cache to disk, reboot the system
-         immediately or dump some status information). This is accomplished
-         by pressing various keys while holding SysRq (Alt+PrintScreen). It
-         also works on a serial console (on PC hardware at least), if you
-         send a BREAK and then within 5 seconds a command keypress. The
-         keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
-         unless you really know what this hack does.
-
-config DEBUG_SPINLOCK
-       bool "Spinlock debugging"
-       depends on DEBUG_KERNEL
-       help
-         Say Y here and build SMP to catch missing spinlock initialization
-         and certain other kinds of spinlock errors commonly made.  This is
-         best used in conjunction with the NMI watchdog so that spinlock
-         deadlocks are also debuggable.
-
-# !SMP for now because the context switch early causes GPF in segment reloading
-# and the GS base checking does the wrong thing then, causing a hang.
-config CHECKING
-       bool "Additional run-time checks"
-       depends on DEBUG_KERNEL && !SMP
-       help
-         Enables some internal consistency checks for kernel debugging.
-         You should normally say N.
-
-config INIT_DEBUG
-       bool "Debug __init statements"
-       depends on DEBUG_KERNEL
-       help
-         Fill __init and __initdata at the end of boot. This helps debugging
-         illegal uses of __init and __initdata after initialization.     
+source "arch/x86_64/oprofile/Kconfig"
 
-config DEBUG_INFO
-       bool "Compile the kernel with debug info"
-       depends on DEBUG_KERNEL
+config KPROBES
+       bool "Kprobes (EXPERIMENTAL)"
+       depends on EXPERIMENTAL && MODULES
        help
-          If you say Y here the resulting kernel image will include
-         debugging info resulting in a larger kernel image.
-         Say Y here only if you plan to use gdb to debug the kernel.
-         Please note that this option requires new binutils.
-         If you don't debug the kernel, you can say N.
-         
-config FRAME_POINTER
-       bool "Compile the kernel with frame pointers"
-       help
-        Compile the kernel with frame pointers. This may help for some 
-        debugging with external debuggers. Note the standard oops backtracer 
-        doesn't make use of this  and the x86-64 kernel doesn't ensure an consistent
-        frame pointer through inline assembly (semaphores etc.)
-        Normally you should say N.
-
-config IOMMU_DEBUG
-       depends on GART_IOMMU && DEBUG_KERNEL
-       bool "Enable IOMMU debugging"
-       help
-         Force the IOMMU to on even when you have less than 4GB of
-        memory and add debugging code. On overflow always panic. And
-        allow to enable IOMMU leak tracing. Can be disabled at boot
-        time with iommu=noforce. This will also enable scatter gather
-        list merging.  Currently not recommended for production
-        code. When you use it make sure you have a big enough
-        IOMMU/AGP aperture.  Most of the options enabled by this can
-        be set more finegrained using the iommu= command line
-        options. See Documentation/x86_64/boot-options.txt for more
-        details.
-
-config IOMMU_LEAK
-       bool "IOMMU leak tracing"
-       depends on DEBUG_KERNEL
-       depends on IOMMU_DEBUG
-       help
-         Add a simple leak tracer to the IOMMU code. This is useful when you
-        are debugging a buggy device driver that leaks IOMMU mappings.
-       
-#config X86_REMOTE_DEBUG
-#       bool "kgdb debugging stub"
-
+         Kprobes allows you to trap at almost any kernel address and
+         execute a callback function.  register_kprobe() establishes
+         a probepoint and specifies the callback.  Kprobes is useful
+         for kernel debugging, non-intrusive instrumentation and testing.
+         If in doubt, say "N".
 endmenu
 
+source "arch/x86_64/Kconfig.debug"
+
 source "kernel/vserver/Kconfig"
 
 source "security/Kconfig"
 
 source "crypto/Kconfig"
 
-source "lib/Kconfig"
+source "drivers/xen/Kconfig"
 
+source "lib/Kconfig"