Subject: xen3 xen-kconfig From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 1073:8fe973d8fb98) Patch-mainline: n/a Acked-by: jbeulich@novell.com --- head-2011-01-30.orig/arch/x86/Kconfig 2011-01-31 12:42:58.000000000 +0100 +++ head-2011-01-30/arch/x86/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -83,6 +83,7 @@ config ARCH_DEFCONFIG config GENERIC_CMOS_UPDATE def_bool y + depends on !X86_XEN config CLOCKSOURCE_WATCHDOG def_bool y @@ -215,11 +216,22 @@ config X86_64_SMP config X86_HT def_bool y - depends on SMP + depends on SMP && !XEN config X86_TRAMPOLINE def_bool y depends on SMP || (64BIT && ACPI_SLEEP) + depends on !XEN + +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 X86_32_LAZY_GS def_bool y @@ -291,6 +303,17 @@ config X86_MPPARSE For old smp systems that do not have proper acpi support. Newer systems (esp with 64bit cpus) with acpi support, MADT and DSDT will override it +config X86_XEN + bool "Xen-compatible" + select XEN + select X86_PAE + 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_BIGSMP bool "Support for big SMP systems with more than 8 CPUs" depends on X86_32 && SMP @@ -320,6 +343,13 @@ config X86_EXTENDED_PLATFORM generic distribution kernel, say Y here - otherwise say N. endif +config X86_64_XEN + bool "Enable Xen compatible kernel" + select XEN + select SWIOTLB + help + This option will compile a kernel compatible with Xen hypervisor + if X86_64 config X86_EXTENDED_PLATFORM bool "Support for extended (non-PC) x86 platforms" @@ -597,6 +627,7 @@ source "arch/x86/Kconfig.cpu" 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 @@ -642,7 +673,7 @@ config GART_IOMMU bool "GART IOMMU support" if EXPERT default y select SWIOTLB - depends on X86_64 && PCI && AMD_NB + depends on X86_64 && PCI && AMD_NB && !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, @@ -657,7 +688,7 @@ config GART_IOMMU 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 @@ -740,6 +771,7 @@ config NR_CPUS default "1" if !SMP default "4096" if MAXSMP default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000) + default "16" if X86_64_XEN default "8" if SMP ---help--- This allows you to specify the maximum number of CPUs which this @@ -782,7 +814,7 @@ source "kernel/Kconfig.preempt" config X86_UP_APIC bool "Local APIC support on uniprocessors" - depends on X86_32 && !SMP && !X86_32_NON_STANDARD + depends on X86_32 && !SMP && !X86_32_NON_STANDARD && !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 @@ -808,15 +840,22 @@ config X86_UP_IOAPIC config X86_LOCAL_APIC def_bool y depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC + depends on !XEN_UNPRIVILEGED_GUEST config X86_IO_APIC def_bool y depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC + 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_REROUTE_FOR_BROKEN_BOOT_IRQS bool "Reroute for broken boot IRQs" depends on X86_IO_APIC @@ -842,6 +881,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS config X86_MCE bool "Machine Check / overheating reporting" + depends on !X86_XEN && !XEN_UNPRIVILEGED_GUEST ---help--- Machine Check support allows the processor to notify the kernel if it detects a problem (e.g. overheating, data corruption). @@ -851,7 +891,7 @@ config X86_MCE config X86_MCE_INTEL def_bool y prompt "Intel MCE features" - depends on X86_MCE && X86_LOCAL_APIC + depends on X86_MCE && X86_LOCAL_APIC && !XEN ---help--- Additional support for intel specific MCE features such as the thermal monitor. @@ -867,7 +907,7 @@ config X86_MCE_XEON75XX config X86_MCE_AMD def_bool y prompt "AMD MCE features" - depends on X86_MCE && X86_LOCAL_APIC + depends on X86_MCE && X86_LOCAL_APIC && !XEN ---help--- Additional support for AMD specific MCE features such as the DRAM Error Threshold. @@ -892,6 +932,10 @@ config X86_MCE_INJECT If you don't know what a machine check is and you don't do kernel QA it is safe to say n. +config X86_XEN_MCE + def_bool y + depends on XEN && X86_MCE + config X86_THERMAL_VECTOR def_bool y depends on X86_MCE_INTEL @@ -944,7 +988,7 @@ config I8K config X86_REBOOTFIXUPS bool "Enable X86 board specific fixups for reboot" - depends on X86_32 + depends on X86_32 && !X86_XEN ---help--- This enables chipset and/or board specific fixups to be done in order to get reboot to work correctly. This is only needed on @@ -961,6 +1005,7 @@ config X86_REBOOTFIXUPS config MICROCODE tristate "/dev/cpu/microcode - 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 @@ -1154,7 +1199,7 @@ config DIRECT_GBPAGES # Common NUMA Features config NUMA bool "Numa Memory Allocation and Scheduler Support" - depends on SMP + depends on SMP && !XEN depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) ---help--- @@ -1263,6 +1308,7 @@ config ARCH_SPARSEMEM_DEFAULT config ARCH_SPARSEMEM_ENABLE def_bool y depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD + depends on !XEN select SPARSEMEM_STATIC if X86_32 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 @@ -1352,6 +1398,7 @@ config X86_RESERVE_LOW 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 @@ -1378,6 +1425,7 @@ config MATH_EMULATION config MTRR def_bool y prompt "MTRR (Memory Type Range Register) support" if EXPERT + 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 @@ -1462,7 +1510,7 @@ config ARCH_USES_PG_UNCACHED config EFI bool "EFI runtime service support" - depends on ACPI + depends on ACPI && !XEN ---help--- This enables the kernel to use EFI runtime services that are available (such as the EFI variable services). @@ -1521,6 +1569,7 @@ source kernel/Kconfig.hz 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 @@ -1538,6 +1587,7 @@ config KEXEC config CRASH_DUMP bool "kernel crash dumps" depends on X86_64 || (X86_32 && HIGHMEM) + depends on !XEN ---help--- Generate crash dump after being started by kexec. This should be normally only set in special crash dump kernels @@ -1657,6 +1707,7 @@ config COMPAT_VDSO 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. @@ -1728,6 +1779,7 @@ config USE_PERCPU_NUMA_NODE_ID depends on NUMA menu "Power management and ACPI options" + depends on !XEN_UNPRIVILEGED_GUEST config ARCH_HIBERNATION_HEADER def_bool y @@ -1745,7 +1797,7 @@ config X86_APM_BOOT menuconfig APM tristate "APM (Advanced Power Management) BIOS support" - depends on X86_32 && PM_SLEEP + depends on X86_32 && PM_SLEEP && !XEN ---help--- APM is a BIOS specification for saving power using several different techniques. This is mostly useful for battery powered laptops with @@ -1906,6 +1958,7 @@ choice config PCI_GOBIOS bool "BIOS" + depends on !X86_XEN config PCI_GOMMCONFIG bool "MMConfig" @@ -1917,6 +1970,13 @@ config PCI_GOOLPC bool "OLPC XO-1" depends on OLPC +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" @@ -1924,7 +1984,7 @@ endchoice config PCI_BIOS def_bool y - depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY) + depends on X86_32 && PCI && !XEN && (PCI_GOBIOS || PCI_GOANY) # x86-64 doesn't support PCI BIOS access from long mode so always go direct. config PCI_DIRECT @@ -1966,6 +2026,22 @@ config PCI_CNB20LE_QUIRK You should say N unless you know you need this. +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 PCI_MSI && ACPI && EXPERIMENTAL @@ -2027,6 +2103,7 @@ if X86_32 config ISA bool "ISA support" + depends on !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 @@ -2054,6 +2131,7 @@ source "drivers/eisa/Kconfig" config MCA bool "MCA support" + depends on !XEN ---help--- MicroChannel Architecture is found in some IBM PS/2 machines and laptops. It is a bus system similar to PCI or ISA. See @@ -2184,4 +2262,6 @@ source "crypto/Kconfig" source "arch/x86/kvm/Kconfig" +source "drivers/xen/Kconfig" + source "lib/Kconfig" --- head-2011-01-30.orig/arch/x86/Kconfig.cpu 2011-01-31 12:42:52.000000000 +0100 +++ head-2011-01-30/arch/x86/Kconfig.cpu 2011-01-31 14:42:03.000000000 +0100 @@ -339,7 +339,7 @@ config X86_PPRO_FENCE 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_INVD_BUG def_bool y @@ -400,6 +400,7 @@ config X86_P6_NOP config X86_TSC def_bool y depends on ((MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) && !X86_NUMAQ) || X86_64 + depends on !XEN config X86_CMPXCHG64 def_bool y --- head-2011-01-30.orig/arch/x86/Kconfig.debug 2011-01-31 12:42:52.000000000 +0100 +++ head-2011-01-30/arch/x86/Kconfig.debug 2011-01-31 14:42:03.000000000 +0100 @@ -139,7 +139,7 @@ config DEBUG_NX_TEST config DOUBLEFAULT default y bool "Enable doublefault exception handler" if EXPERT - 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 --- head-2011-01-30.orig/drivers/acpi/Kconfig 2011-01-31 12:42:53.000000000 +0100 +++ head-2011-01-30/drivers/acpi/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -320,6 +320,7 @@ config ACPI_PCI_SLOT config X86_PM_TIMER bool "Power Management Timer Support" if EXPERT depends on X86 + depends on !XEN default y help The Power Management Timer is available on all ACPI-capable, @@ -383,4 +384,13 @@ config ACPI_HED source "drivers/acpi/apei/Kconfig" +config ACPI_PV_SLEEP + bool + depends on X86 && XEN && ACPI_SLEEP + default y + +config PROCESSOR_EXTERNAL_CONTROL + bool + depends on (X86 || IA64) && XEN + default y endif # ACPI --- head-2011-01-30.orig/drivers/char/Kconfig 2011-01-31 12:42:59.000000000 +0100 +++ head-2011-01-30/drivers/char/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -1070,7 +1070,7 @@ config MAX_RAW_DEVS config HPET bool "HPET - High Precision Event Timer" if (X86 || IA64) default n - depends on ACPI + depends on ACPI && !XEN help If you say Y here, you will have a miscdevice named "/dev/hpet/". Each open selects one of the timers supported by the HPET. The timers are --- head-2011-01-30.orig/drivers/char/tpm/Kconfig 2011-01-05 01:50:19.000000000 +0100 +++ head-2011-01-30/drivers/char/tpm/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -60,4 +60,13 @@ config TCG_INFINEON Further information on this driver and the supported hardware can be found at http://www.trust.rub.de/projects/linux-device-driver-infineon-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 --- head-2011-01-30.orig/drivers/cpufreq/Kconfig 2011-01-31 12:42:53.000000000 +0100 +++ head-2011-01-30/drivers/cpufreq/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -1,5 +1,6 @@ config CPU_FREQ bool "CPU Frequency scaling" + depends on !PROCESSOR_EXTERNAL_CONTROL help CPU Frequency scaling allows you to change the clock speed of CPUs on the fly. This is a nice method to save power, because --- head-2011-01-30.orig/drivers/tty/serial/Kconfig 2011-01-31 12:42:54.000000000 +0100 +++ head-2011-01-30/drivers/tty/serial/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -9,6 +9,7 @@ menu "Serial drivers" # The new 8250/16550 serial drivers config SERIAL_8250 tristate "8250/16550 and compatible serial support" + depends on !XEN_DISABLE_SERIAL select SERIAL_CORE ---help--- This selects whether you want to include the driver for the standard --- head-2011-01-30.orig/drivers/xen/Kconfig 2011-01-31 12:42:35.000000000 +0100 +++ head-2011-01-30/drivers/xen/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -1,8 +1,357 @@ +# +# 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)" + select PCI_REASSIGN if PCI + 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_BLKDEV_TAP2 + tristate "Block-device tap backend driver 2" + 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_BLKBACK_PAGEMAP + tristate + depends on XEN_BLKDEV_BACKEND != n && XEN_BLKDEV_TAP2 != n + default XEN_BLKDEV_BACKEND || XEN_BLKDEV_TAP2 + +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_SCSI_BACKEND + tristate "SCSI backend driver" + depends on SCSI && XEN_BACKEND + default m + help + The SCSI backend driver allows the kernel to export its SCSI Devices + to other guests via a high-performance shared-memory interface. + +config XEN_USB_BACKEND + tristate "USB backend driver" + depends on USB && XEN_BACKEND + default m + help + The USB backend driver allows the kernel to export its USB Devices + to other guests. + +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_SCSI_FRONTEND + tristate "SCSI frontend driver" + depends on SCSI + default m + help + The SCSI frontend driver allows the kernel to access SCSI Devices + within another guest OS. + +config XEN_USB_FRONTEND + tristate "USB frontend driver" + depends on USB + default m + help + The USB frontend driver allows the kernel to access USB Devices + within another guest OS. + +config XEN_USB_FRONTEND_HCD_STATS + bool "Taking the HCD statistics (for debug)" + depends on XEN_USB_FRONTEND + default y + help + Count the transferred urb status and the RING_FULL occurrence. + +config XEN_USB_FRONTEND_HCD_PM + bool "HCD suspend/resume support (DO NOT USE)" + depends on XEN_USB_FRONTEND + default n + help + Experimental bus suspend/resume feature support. + +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_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_XENCOMM + bool + +config XEN_DEVMEM + def_bool y + +endif + menu "Xen driver support" - depends on XEN + depends on XEN || PARAVIRT_XEN config XEN_BALLOON - bool "Xen memory balloon driver" + bool "Xen memory balloon driver" if PARAVIRT_XEN + depends on PARAVIRT_XEN || !PPC_XEN default y help The balloon driver allows the Xen domain to request more memory from @@ -10,14 +359,16 @@ config XEN_BALLOON return unneeded memory to the system. config XEN_SCRUB_PAGES - bool "Scrub pages before returning them to system" - depends on XEN_BALLOON + bool "Scrub memory before freeing it to Xen" + depends on XEN || XEN_BALLOON default y help - Scrub pages before returning them to the system for reuse by - other domains. This makes sure that any confidential data - is not accidentally visible to other domains. Is it more - secure, but slightly less efficient. + 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. If in doubt, say yes. config XEN_DEV_EVTCHN --- head-2011-01-30.orig/fs/Kconfig 2011-01-31 12:42:58.000000000 +0100 +++ head-2011-01-30/fs/Kconfig 2011-01-31 14:42:03.000000000 +0100 @@ -141,6 +141,7 @@ config HUGETLBFS bool "HugeTLB file system support" depends on X86 || IA64 || SPARC64 || (S390 && 64BIT) || \ SYS_SUPPORTS_HUGETLBFS || 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 --- head-2011-01-30.orig/kernel/Kconfig.preempt 2011-01-31 12:42:57.000000000 +0100 +++ head-2011-01-30/kernel/Kconfig.preempt 2011-01-31 14:42:03.000000000 +0100 @@ -36,6 +36,7 @@ config PREEMPT_VOLUNTARY 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)