Subject: xen3 xen-kconfig From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 517:d71965a78c20) Patch-mainline: obsolete Acked-by: jbeulich@novell.com --- arch/x86/Kconfig | 102 ++++++++++++-- arch/x86/Kconfig.cpu | 3 arch/x86/Kconfig.debug | 2 drivers/acpi/Kconfig | 5 drivers/char/tpm/Kconfig | 9 + drivers/serial/Kconfig | 1 drivers/video/console/Kconfig | 1 drivers/xen/Kconfig | 298 ++++++++++++++++++++++++++++++++++++++++++ fs/Kconfig | 1 kernel/Kconfig.preempt | 1 10 files changed, 405 insertions(+), 18 deletions(-) --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -42,6 +42,7 @@ config GENERIC_TIME def_bool y + depends on !X86_XEN config GENERIC_CMOS_UPDATE def_bool y @@ -183,7 +184,7 @@ 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_XEN)) || (X86_64 && !MK8 && !X86_64_XEN) default y config X86_BIOS_REBOOT @@ -194,6 +195,17 @@ config X86_TRAMPOLINE bool depends on X86_SMP || (X86_VOYAGER && SMP) + depends on !XEN + default y + +config X86_NO_TSS + bool + depends on X86_XEN || X86_64_XEN + default y + +config X86_NO_IDT + bool + depends on X86_XEN || X86_64_XEN default y config KTIME_SCALAR @@ -241,6 +253,16 @@ help Choose this option if your computer is a standard PC or compatible. +config X86_XEN + bool "Xen-compatible" + select XEN + select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST + select X86_UP_IOAPIC if !SMP && XEN_PRIVILEGED_GUEST + select SWIOTLB + help + Choose this option if you plan to run this kernel on top of the + Xen Hypervisor. + config X86_ELAN bool "AMD Elan" depends on X86_32 @@ -337,6 +359,13 @@ as R-8610-(G). If you don't have one of these chips, you should say N here. +config X86_64_XEN + bool "Enable Xen compatible kernel" + select XEN + select SWIOTLB + help + This option will compile a kernel compatible with Xen hypervisor + config X86_VSMP bool "Support for ScaleMP vSMP" depends on X86_64 && PCI @@ -421,6 +450,7 @@ config HPET_TIMER def_bool X86_64 prompt "HPET Timer Support" if X86_32 + depends on !X86_XEN && !X86_64_XEN help Use the IA-PC HPET (High Precision Event Timer) to manage time in preference to the PIT and RTC, if a HPET is @@ -448,7 +478,7 @@ default y select SWIOTLB select AGP - depends on X86_64 && PCI + depends on X86_64 && 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, @@ -463,7 +493,7 @@ config CALGARY_IOMMU bool "IBM Calgary IOMMU support" select SWIOTLB - depends on X86_64 && PCI && EXPERIMENTAL + depends on X86_64 && PCI && !X86_64_XEN && EXPERIMENTAL help Support for hardware IOMMUs in IBM's xSeries x366 and x460 systems. Needed to run systems with more than 3GB of memory @@ -508,6 +538,7 @@ range 2 255 depends on SMP default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 + default "16" if X86_64_XEN default "8" help This allows you to specify the maximum number of CPUs which this @@ -519,7 +550,7 @@ config SCHED_SMT bool "SMT (Hyperthreading) scheduler support" - depends on (X86_64 && SMP) || (X86_32 && X86_HT) + depends on (X86_64 && SMP && !X86_64_XEN) || (X86_32 && X86_HT) help SMT scheduler support improves the CPU scheduler's decision making when dealing with Intel Pentium 4 chips with HyperThreading at a @@ -529,7 +560,7 @@ config SCHED_MC def_bool y prompt "Multi-core scheduler support" - depends on (X86_64 && SMP) || (X86_32 && X86_HT) + depends on (X86_64 && SMP && !X86_64_XEN) || (X86_32 && 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 @@ -539,7 +570,7 @@ config X86_UP_APIC bool "Local APIC support on uniprocessors" - depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) + depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH || XEN_UNPRIVILEGED_GUEST) help A local APIC (Advanced Programmable Interrupt Controller) is an integrated interrupt controller in the CPU. If you have a single-CPU @@ -565,18 +596,25 @@ config X86_LOCAL_APIC def_bool y depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH)) + depends on !XEN_UNPRIVILEGED_GUEST config X86_IO_APIC def_bool y depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH)) + depends on !XEN_UNPRIVILEGED_GUEST config X86_VISWS_APIC def_bool y depends on X86_32 && X86_VISWS +config X86_XEN_GENAPIC + bool + depends on X86_64_XEN + default y + config X86_MCE bool "Machine Check Exception" - depends on !X86_VOYAGER + depends on !(X86_VOYAGER || X86_XEN || X86_64_XEN) ---help--- Machine Check Exception support allows the processor to notify the kernel if it detects a problem (e.g. overheating, component failure). @@ -693,6 +731,7 @@ config MICROCODE tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support" + depends on !XEN_UNPRIVILEGED_GUEST select FW_LOADER ---help--- If you say Y here, you will be able to update the microcode on @@ -851,7 +890,7 @@ # Common NUMA Features config NUMA bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" - depends on SMP + depends on SMP && !X86_64_XEN depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) default n if X86_PC default y if (X86_NUMAQ || X86_SUMMIT) @@ -939,7 +978,7 @@ config ARCH_SPARSEMEM_ENABLE def_bool y - depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) + depends on (X86_64 && !X86_64_XEN) || NUMA || (EXPERIMENTAL && X86_PC) select SPARSEMEM_STATIC if X86_32 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 @@ -965,6 +1004,7 @@ config MATH_EMULATION bool prompt "Math emulation" if X86_32 + depends on !X86_XEN ---help--- Linux can emulate a math coprocessor (used for floating point operations) if you don't have one. 486DX and Pentium processors have @@ -990,6 +1030,8 @@ config MTRR bool "MTRR (Memory Type Range Register) support" + depends on !XEN_UNPRIVILEGED_GUEST + default y if X86_XEN ---help--- On Intel P6 family processors (Pentium Pro, Pentium II and later) the Memory Type Range Registers (MTRRs) may be used to control @@ -1025,7 +1067,7 @@ config EFI def_bool n prompt "EFI runtime service support" - depends on ACPI + depends on ACPI && !X86_XEN && !X86_64_XEN ---help--- This enables the kernel to use EFI runtime services that are available (such as the EFI variable services). @@ -1040,7 +1082,7 @@ config IRQBALANCE def_bool y prompt "Enable kernel irq balancing" - depends on X86_32 && SMP && X86_IO_APIC + depends on X86_32 && SMP && X86_IO_APIC && !X86_XEN help The default yes will allow the kernel to do irq load balancing. Saying no will keep the kernel from doing irq load balancing. @@ -1102,6 +1144,7 @@ config KEXEC bool "kexec system call" + depends on !XEN_UNPRIVILEGED_GUEST 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 @@ -1230,6 +1273,7 @@ def_bool y prompt "Compat VDSO support" depends on X86_32 || IA32_EMULATION + depends on !X86_XEN help Map the 32-bit VDSO to the predictable old-style address too. ---help--- @@ -1250,7 +1294,7 @@ depends on NUMA menu "Power management options" - depends on !X86_VOYAGER + depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST) config ARCH_HIBERNATION_HEADER def_bool y @@ -1267,7 +1311,7 @@ menuconfig APM tristate "APM (Advanced Power Management) BIOS support" - depends on X86_32 && PM_SLEEP && !X86_VISWS + depends on X86_32 && PM_SLEEP && !(X86_VISWS || X86_XEN) ---help--- APM is a BIOS specification for saving power using several different techniques. This is mostly useful for battery powered laptops with @@ -1434,6 +1478,7 @@ config PCI_GOBIOS bool "BIOS" + depends on !X86_XEN config PCI_GOMMCONFIG bool "MMConfig" @@ -1441,6 +1486,13 @@ config PCI_GODIRECT bool "Direct" +config PCI_GOXEN_FE + bool "Xen PCI Frontend" + depends on X86_XEN + help + The PCI device frontend driver allows the kernel to import arbitrary + PCI devices from a PCI backend to support PCI driver domains. + config PCI_GOANY bool "Any" @@ -1448,7 +1500,7 @@ config PCI_BIOS def_bool y - depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) + depends on X86_32 && !(X86_VISWS || X86_XEN) && PCI && (PCI_GOBIOS || PCI_GOANY) # x86-64 doesn't support PCI BIOS access from long mode so always go direct. config PCI_DIRECT @@ -1467,6 +1519,22 @@ bool "Support mmconfig PCI config space access" depends on X86_64 && PCI && ACPI +config XEN_PCIDEV_FRONTEND + bool "Xen PCI Frontend" if X86_64 + depends on PCI && ((X86_XEN && (PCI_GOXEN_FE || PCI_GOANY)) || X86_64_XEN) + select HOTPLUG + 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. + config DMAR bool "Support for DMA Remapping Devices (EXPERIMENTAL)" depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL @@ -1509,7 +1577,7 @@ config ISA bool "ISA support" - depends on !(X86_VOYAGER || X86_VISWS) + depends on !(X86_VOYAGER || X86_VISWS || X86_XEN) help Find out whether you have ISA slots on your motherboard. ISA is the name of a bus system, i.e. the way the CPU talks to the other stuff @@ -1536,7 +1604,7 @@ source "drivers/eisa/Kconfig" config MCA - bool "MCA support" if !(X86_VISWS || X86_VOYAGER) + bool "MCA support" if !(X86_VISWS || X86_VOYAGER || X86_XEN) default y if X86_VOYAGER help MicroChannel Architecture is found in some IBM PS/2 machines and @@ -1641,4 +1709,6 @@ source "arch/x86/kvm/Kconfig" +source "drivers/xen/Kconfig" + source "lib/Kconfig" --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu @@ -335,7 +335,7 @@ config X86_F00F_BUG def_bool y - depends on M586MMX || M586TSC || M586 || M486 || M386 + depends on (M586MMX || M586TSC || M586 || M486 || M386) && !X86_NO_IDT config X86_WP_WORKS_OK def_bool y @@ -393,6 +393,7 @@ config X86_TSC def_bool y depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64 + depends on !X86_XEN && !X86_64_XEN # this should be set for all -march=.. options where the compiler # generates cmov. --- a/arch/x86/Kconfig.debug +++ b/arch/x86/Kconfig.debug @@ -103,7 +103,7 @@ config DOUBLEFAULT default y bool "Enable doublefault exception handler" if EMBEDDED - depends on X86_32 + depends on X86_32 && !X86_NO_TSS help This option allows trapping of rare doublefault exceptions that would otherwise cause a system to silently reboot. Disabling this --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig @@ -349,6 +349,7 @@ config X86_PM_TIMER bool "Power Management Timer Support" if EMBEDDED depends on X86 + depends on !XEN default y help The Power Management Timer is available on all ACPI-capable, @@ -402,4 +403,8 @@ This driver adds support for the Smart Battery System, another type of access to battery information, found on some laptops. +config ACPI_PV_SLEEP + bool + depends on X86 && XEN && ACPI_SLEEP + default y endif # ACPI --- a/drivers/char/tpm/Kconfig +++ b/drivers/char/tpm/Kconfig @@ -58,4 +58,13 @@ Further information on this driver and the supported hardware can be found at http://www.prosec.rub.de/tpm +config TCG_XEN + tristate "XEN TPM Interface" + depends on XEN + ---help--- + If you want to make TPM support available to a Xen user domain, + say Yes and it will be accessible from within Linux. + To compile this driver as a module, choose M here; the module + will be called tpm_xenu. + endif # TCG_TPM --- a/drivers/serial/Kconfig +++ b/drivers/serial/Kconfig @@ -12,6 +12,7 @@ config SERIAL_8250 tristate "8250/16550 and compatible serial support" depends on (BROKEN || !SPARC) + depends on !XEN_DISABLE_SERIAL select SERIAL_CORE ---help--- This selects whether you want to include the driver for the standard --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig @@ -46,6 +46,7 @@ config VIDEO_SELECT bool "Video mode selection support" depends on X86 && VGA_CONSOLE + depends on !XEN ---help--- This enables support for text mode selection on kernel startup. If you want to take advantage of some high-resolution text mode your --- /dev/null +++ b/drivers/xen/Kconfig @@ -0,0 +1,298 @@ +# +# This Kconfig describe xen options +# + +mainmenu "Xen Configuration" + +config XEN + bool + +if XEN +config XEN_INTERFACE_VERSION + hex + default 0x00030207 + +menu "XEN" + +config XEN_PRIVILEGED_GUEST + bool "Privileged Guest (domain 0)" + help + Support for privileged operation (domain 0) + +config XEN_UNPRIVILEGED_GUEST + def_bool !XEN_PRIVILEGED_GUEST + +config XEN_PRIVCMD + def_bool y + depends on PROC_FS + +config XEN_XENBUS_DEV + def_bool y + depends on PROC_FS + +config XEN_NETDEV_ACCEL_SFC_UTIL + depends on X86 + tristate + +config XEN_BACKEND + tristate "Backend driver support" + default XEN_PRIVILEGED_GUEST + help + Support for backend device drivers that provide I/O services + to other virtual machines. + +config XEN_BLKDEV_BACKEND + tristate "Block-device backend driver" + depends on XEN_BACKEND + default XEN_BACKEND + help + The block-device backend driver allows the kernel to export its + block devices to other guests via a high-performance shared-memory + interface. + +config XEN_BLKDEV_TAP + tristate "Block-device tap backend driver" + depends on XEN_BACKEND + default XEN_BACKEND + help + The block tap driver is an alternative to the block back driver + and allows VM block requests to be redirected to userspace through + a device interface. The tap allows user-space development of + high-performance block backends, where disk images may be implemented + as files, in memory, or on other hosts across the network. This + driver can safely coexist with the existing blockback driver. + +config XEN_NETDEV_BACKEND + tristate "Network-device backend driver" + depends on XEN_BACKEND && NET + default XEN_BACKEND + help + The network-device backend driver allows the kernel to export its + network devices to other guests via a high-performance shared-memory + interface. + +config XEN_NETDEV_PIPELINED_TRANSMITTER + bool "Pipelined transmitter (DANGEROUS)" + depends on XEN_NETDEV_BACKEND + help + If the net backend is a dumb domain, such as a transparent Ethernet + bridge with no local IP interface, it is safe to say Y here to get + slightly lower network overhead. + If the backend has a local IP interface; or may be doing smart things + like reassembling packets to perform firewall filtering; or if you + are unsure; or if you experience network hangs when this option is + enabled; then you must say N here. + +config XEN_NETDEV_ACCEL_SFC_BACKEND + tristate "Network-device backend driver acceleration for Solarflare NICs" + depends on XEN_NETDEV_BACKEND && SFC && SFC_RESOURCE && X86 + select XEN_NETDEV_ACCEL_SFC_UTIL + default m + +config XEN_NETDEV_LOOPBACK + tristate "Network-device loopback driver" + depends on XEN_NETDEV_BACKEND + help + A two-interface loopback device to emulate a local netfront-netback + connection. If unsure, it is probably safe to say N here. + +config XEN_PCIDEV_BACKEND + tristate "PCI-device backend driver" + depends on PCI && XEN_BACKEND + default XEN_BACKEND + help + The PCI device backend driver allows the kernel to export arbitrary + PCI devices to other guests. If you select this to be a module, you + will need to make sure no other driver has bound to the device(s) + you want to make visible to other guests. + +choice + prompt "PCI Backend Mode" + depends on XEN_PCIDEV_BACKEND + default XEN_PCIDEV_BACKEND_VPCI if !IA64 + default XEN_PCIDEV_BACKEND_CONTROLLER if IA64 + +config XEN_PCIDEV_BACKEND_VPCI + bool "Virtual PCI" + ---help--- + This PCI Backend hides the true PCI topology and makes the frontend + think there is a single PCI bus with only the exported devices on it. + For example, a device at 03:05.0 will be re-assigned to 00:00.0. A + second device at 02:1a.1 will be re-assigned to 00:01.1. + +config XEN_PCIDEV_BACKEND_PASS + bool "Passthrough" + ---help--- + This PCI Backend provides a real view of the PCI topology to the + frontend (for example, a device at 06:01.b will still appear at + 06:01.b to the frontend). This is similar to how Xen 2.0.x exposed + PCI devices to its driver domains. This may be required for drivers + which depend on finding their hardward in certain bus/slot + locations. + +config XEN_PCIDEV_BACKEND_SLOT + bool "Slot" + ---help--- + This PCI Backend hides the true PCI topology and makes the frontend + think there is a single PCI bus with only the exported devices on it. + Contrary to the virtual PCI backend, a function becomes a new slot. + For example, a device at 03:05.2 will be re-assigned to 00:00.0. A + second device at 02:1a.1 will be re-assigned to 00:01.0. + +config XEN_PCIDEV_BACKEND_CONTROLLER + bool "Controller" + depends on IA64 + ---help--- + This PCI backend virtualizes the PCI bus topology by providing a + virtual bus per PCI root device. Devices which are physically under + the same root bus will appear on the same virtual bus. For systems + with complex I/O addressing, this is the only backend which supports + extended I/O port spaces and MMIO translation offsets. This backend + also supports slot virtualization. For example, a device at + 0000:01:02.1 will be re-assigned to 0000:00:00.0. A second device + at 0000:02:05.0 (behind a P2P bridge on bus 0000:01) will be + re-assigned to 0000:00:01.0. A third device at 0000:16:05.0 (under + a different PCI root bus) will be re-assigned to 0000:01:00.0. + +endchoice + +config XEN_PCIDEV_BE_DEBUG + bool "PCI Backend Debugging" + depends on XEN_PCIDEV_BACKEND + +config XEN_TPMDEV_BACKEND + tristate "TPM-device backend driver" + depends on XEN_BACKEND + help + The TPM-device backend driver + +config XEN_BLKDEV_FRONTEND + tristate "Block-device frontend driver" + default y + help + The block-device frontend driver allows the kernel to access block + devices mounted within another guest OS. Unless you are building a + dedicated device-driver domain, or your master control domain + (domain 0), then you almost certainly want to say Y here. + +config XEN_NETDEV_FRONTEND + tristate "Network-device frontend driver" + depends on NET + default y + help + The network-device frontend driver allows the kernel to access + network interfaces within another guest OS. Unless you are building a + dedicated device-driver domain, or your master control domain + (domain 0), then you almost certainly want to say Y here. + +config XEN_NETDEV_ACCEL_SFC_FRONTEND + tristate "Network-device frontend driver acceleration for Solarflare NICs" + depends on XEN_NETDEV_FRONTEND && X86 + select XEN_NETDEV_ACCEL_SFC_UTIL + default m + +config XEN_GRANT_DEV + tristate "User-space granted page access driver" + default XEN_PRIVILEGED_GUEST + help + Device for accessing (in user-space) pages that have been granted + by other domains. + +config XEN_FRAMEBUFFER + tristate "Framebuffer-device frontend driver" + depends on FB + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT + default y + help + The framebuffer-device frontend drivers allows the kernel to create a + virtual framebuffer. This framebuffer can be viewed in another + domain. Unless this domain has access to a real video card, you + probably want to say Y here. + +config XEN_KEYBOARD + tristate "Keyboard-device frontend driver" + depends on XEN_FRAMEBUFFER && INPUT + default y + help + The keyboard-device frontend driver allows the kernel to create a + virtual keyboard. This keyboard can then be driven by another + domain. If you've said Y to CONFIG_XEN_FRAMEBUFFER, you probably + want to say Y here. + +config XEN_SCRUB_PAGES + bool "Scrub memory before freeing it to Xen" + default y + help + Erase memory contents before freeing it back to Xen's global + pool. This ensures that any secrets contained within that + memory (e.g., private keys) cannot be found by other guests that + may be running on the machine. Most people will want to say Y here. + If security is not a concern then you may increase performance by + saying N. + +config XEN_DISABLE_SERIAL + bool "Disable serial port drivers" + default y + help + Disable serial port drivers, allowing the Xen console driver + to provide a serial console at ttyS0. + +config XEN_SYSFS + tristate "Export Xen attributes in sysfs" + depends on SYSFS + select SYS_HYPERVISOR + default y + help + Xen hypervisor attributes will show up under /sys/hypervisor/. + +choice + prompt "Xen version compatibility" + default XEN_COMPAT_030002_AND_LATER + + config XEN_COMPAT_030002_AND_LATER + bool "3.0.2 and later" + + config XEN_COMPAT_030004_AND_LATER + bool "3.0.4 and later" + + config XEN_COMPAT_030100_AND_LATER + bool "3.1.0 and later" + + config XEN_COMPAT_LATEST_ONLY + bool "no compatibility code" + +endchoice + +config XEN_COMPAT + hex + default 0xffffff if XEN_COMPAT_LATEST_ONLY + default 0x030100 if XEN_COMPAT_030100_AND_LATER + default 0x030004 if XEN_COMPAT_030004_AND_LATER + default 0x030002 if XEN_COMPAT_030002_AND_LATER + default 0 + +endmenu + +config HAVE_IRQ_IGNORE_UNHANDLED + def_bool y + +config NO_IDLE_HZ + def_bool y + +config XEN_SMPBOOT + def_bool y + depends on SMP && !PPC_XEN + +config XEN_BALLOON + def_bool y + depends on !PPC_XEN + +config XEN_XENCOMM + bool + +config XEN_DEVMEM + def_bool y + +endif --- a/fs/Kconfig +++ b/fs/Kconfig @@ -992,6 +992,7 @@ config HUGETLBFS bool "HugeTLB file system support" depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || BROKEN + depends on !XEN help hugetlbfs is a filesystem backing for HugeTLB pages, based on ramfs. For architectures that support it, say Y here and read --- a/kernel/Kconfig.preempt +++ b/kernel/Kconfig.preempt @@ -35,6 +35,7 @@ config PREEMPT bool "Preemptible Kernel (Low-Latency Desktop)" + depends on !XEN help This option reduces the latency of the kernel by making all kernel code (that is not executing in a critical section)