Subject: xen3 xen-kconfig From: http://xenbits.xensource.com/linux-2.6.18-xen.hg (tip 728:832aac894efd) Patch-mainline: obsolete Acked-by: jbeulich@novell.com Index: head-2008-11-25/arch/x86/Kconfig =================================================================== --- head-2008-11-25.orig/arch/x86/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/arch/x86/Kconfig 2008-11-17 13:39:31.000000000 +0100 @@ -44,6 +44,7 @@ config GENERIC_LOCKBREAK config GENERIC_TIME def_bool y + depends on !X86_XEN config GENERIC_CMOS_UPDATE def_bool y @@ -188,7 +189,7 @@ config X86_64_SMP config X86_HT bool - depends on SMP + depends on SMP && !XEN depends on (X86_32 && !X86_VOYAGER) || X86_64 default y @@ -200,6 +201,17 @@ config X86_BIOS_REBOOT config X86_TRAMPOLINE bool depends on X86_SMP || (X86_VOYAGER && SMP) || (64BIT && ACPI_SLEEP) + 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 @@ -267,6 +279,17 @@ config X86_PC help Choose this option if your computer is a standard PC or compatible. +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_ELAN bool "AMD Elan" depends on X86_32 @@ -334,6 +357,13 @@ config X86_BIGSMP 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 + config X86_VSMP bool "Support for ScaleMP vSMP" select PARAVIRT @@ -474,6 +504,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 @@ -510,7 +541,7 @@ config GART_IOMMU 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, @@ -525,7 +556,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 @@ -593,6 +624,7 @@ config NR_CPUS depends on SMP default "4096" if MAXSMP 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 @@ -648,7 +680,7 @@ config X86_REROUTE_FOR_BROKEN_BOOT_IRQS config X86_UP_APIC bool "Local APIC support on uniprocessors" - depends on X86_32 && !SMP && !(X86_VOYAGER || X86_GENERICARCH) + depends on X86_32 && !SMP && !(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 @@ -674,18 +706,25 @@ config X86_UP_IOAPIC config X86_LOCAL_APIC def_bool y depends on X86_64 || (X86_32 && (X86_UP_APIC || (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_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 || XEN) ---help--- Machine Check Exception support allows the processor to notify the kernel if it detects a problem (e.g. overheating, component failure). @@ -785,7 +824,7 @@ config I8K config X86_REBOOTFIXUPS def_bool n prompt "Enable X86 board specific fixups for reboot" - depends on X86_32 && X86 + 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 @@ -802,6 +841,7 @@ config X86_REBOOTFIXUPS 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 @@ -969,7 +1009,7 @@ config DIRECT_GBPAGES # Common NUMA Features config NUMA bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" - depends on SMP + depends on SMP && !XEN depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) default n if X86_PC default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) @@ -1071,7 +1111,7 @@ config ARCH_SPARSEMEM_DEFAULT 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 @@ -1117,6 +1157,7 @@ config X86_RESERVE_LOW_64K 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 @@ -1142,6 +1183,7 @@ config MATH_EMULATION 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 @@ -1223,7 +1265,7 @@ config X86_PAT 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). @@ -1238,7 +1280,7 @@ config EFI 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. @@ -1301,6 +1343,7 @@ source kernel/Kconfig.hz config KEXEC bool "kexec system call" depends on X86_BIOS_REBOOT + 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 @@ -1318,6 +1361,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 @@ -1436,6 +1480,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. ---help--- @@ -1458,7 +1503,7 @@ config HAVE_ARCH_EARLY_PFN_TO_NID 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 @@ -1475,7 +1520,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 @@ -1641,6 +1686,7 @@ choice config PCI_GOBIOS bool "BIOS" + depends on !X86_XEN config PCI_GOMMCONFIG bool "MMConfig" @@ -1652,6 +1698,13 @@ config PCI_GOOLPC bool "OLPC" 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" @@ -1659,7 +1712,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 @@ -1682,6 +1735,22 @@ config PCI_MMCONFIG 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 @@ -1732,7 +1801,7 @@ if X86_32 config ISA bool "ISA support" - depends on !X86_VOYAGER + depends on !X86_VOYAGER && !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 @@ -1759,7 +1828,7 @@ config EISA source "drivers/eisa/Kconfig" config MCA - bool "MCA support" if !X86_VOYAGER + bool "MCA support" if !X86_VOYAGER && !XEN default y if X86_VOYAGER help MicroChannel Architecture is found in some IBM PS/2 machines and @@ -1871,4 +1940,6 @@ source "crypto/Kconfig" source "arch/x86/kvm/Kconfig" +source "drivers/xen/Kconfig" + source "lib/Kconfig" Index: head-2008-11-25/arch/x86/Kconfig.cpu =================================================================== --- head-2008-11-25.orig/arch/x86/Kconfig.cpu 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/arch/x86/Kconfig.cpu 2008-11-10 11:49:15.000000000 +0100 @@ -340,7 +340,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_WP_WORKS_OK def_bool y @@ -397,6 +397,7 @@ config X86_P6_NOP 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 !XEN config X86_CMPXCHG64 def_bool y Index: head-2008-11-25/arch/x86/Kconfig.debug =================================================================== --- head-2008-11-25.orig/arch/x86/Kconfig.debug 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/arch/x86/Kconfig.debug 2008-11-10 11:49:15.000000000 +0100 @@ -130,7 +130,7 @@ config 4KSTACKS 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 Index: head-2008-11-25/drivers/acpi/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/acpi/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/acpi/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -362,6 +362,7 @@ config ACPI_SYSTEM 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, @@ -415,4 +416,13 @@ config ACPI_SBS 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 + +config PROCESSOR_EXTERNAL_CONTROL + bool + depends on (X86 || IA64) && XEN + default y endif # ACPI Index: head-2008-11-25/drivers/char/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/char/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/char/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -1037,7 +1037,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 Index: head-2008-11-25/drivers/char/tpm/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/char/tpm/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/char/tpm/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -57,4 +57,13 @@ config TCG_INFINEON 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 Index: head-2008-11-25/drivers/cpufreq/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/cpufreq/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/cpufreq/Kconfig 2008-11-10 11:49:15.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 Index: head-2008-11-25/drivers/pci/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/pci/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/pci/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -21,6 +21,9 @@ config PCI_MSI If you don't know what to do here, say N. +config PCI_REASSIGN + bool + config PCI_LEGACY bool "Enable deprecated pci_find_* API" depends on PCI Index: head-2008-11-25/drivers/serial/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/serial/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/serial/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -10,6 +10,7 @@ menu "Serial drivers" 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 Index: head-2008-11-25/drivers/video/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/video/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/video/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -1601,7 +1601,7 @@ config FB_CYBLA tristate "Cyberblade/i1 support" depends on FB && PCI && X86_32 && !64BIT select FB_CFB_IMAGEBLIT - select VIDEO_SELECT + select VIDEO_SELECT if !XEN ---help--- This driver is supposed to support the Trident Cyberblade/i1 graphics core integrated in the VIA VT8601A North Bridge, Index: head-2008-11-25/drivers/video/console/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/video/console/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/video/console/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -46,6 +46,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE 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 Index: head-2008-11-25/drivers/xen/Kconfig =================================================================== --- head-2008-11-25.orig/drivers/xen/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/drivers/xen/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -1,6 +1,307 @@ +# +# 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_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_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_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 + config XEN_BALLOON - bool "Xen memory balloon driver" - depends on XEN + bool "Xen memory balloon driver" if PARAVIRT_XEN + depends on (XEN && !PPC_XEN) || PARAVIRT_XEN default y help The balloon driver allows the Xen domain to request more memory from @@ -8,12 +309,14 @@ 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. Index: head-2008-11-25/fs/Kconfig =================================================================== --- head-2008-11-25.orig/fs/Kconfig 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/fs/Kconfig 2008-11-10 11:49:15.000000000 +0100 @@ -1011,6 +1011,7 @@ config HUGETLBFS bool "HugeTLB file system support" depends on X86 || IA64 || PPC64 || SPARC64 || (SUPERH && MMU) || \ (S390 && 64BIT) || 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 Index: head-2008-11-25/kernel/Kconfig.preempt =================================================================== --- head-2008-11-25.orig/kernel/Kconfig.preempt 2008-11-25 12:33:06.000000000 +0100 +++ head-2008-11-25/kernel/Kconfig.preempt 2008-11-10 11:49:15.000000000 +0100 @@ -35,6 +35,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)