diff options
author | kaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk> | 2004-09-16 13:11:34 +0000 |
---|---|---|
committer | kaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk> | 2004-09-16 13:11:34 +0000 |
commit | 9b35f57c680ff08326a529aee13eae0e58b97ab1 (patch) | |
tree | f6890a97b673947dff795f8d299ace4a1835962b /linux-2.6.8.1-xen-sparse/arch | |
parent | 18a95d9e9d21a3cda4335b6a8e78e222b339e068 (diff) | |
download | xen-9b35f57c680ff08326a529aee13eae0e58b97ab1.tar.gz xen-9b35f57c680ff08326a529aee13eae0e58b97ab1.tar.bz2 xen-9b35f57c680ff08326a529aee13eae0e58b97ab1.zip |
bitkeeper revision 1.1159.1.158 (41499106LOJstE56FhydVjOBF9ioOQ)
Improve configuration of virtual device drivers in XenLinux.
Diffstat (limited to 'linux-2.6.8.1-xen-sparse/arch')
4 files changed, 73 insertions, 9 deletions
diff --git a/linux-2.6.8.1-xen-sparse/arch/xen/Kconfig b/linux-2.6.8.1-xen-sparse/arch/xen/Kconfig index 2bbe0229b4..a7e3994e10 100644 --- a/linux-2.6.8.1-xen-sparse/arch/xen/Kconfig +++ b/linux-2.6.8.1-xen-sparse/arch/xen/Kconfig @@ -31,9 +31,68 @@ config XEN_PRIVILEGED_GUEST Support for privileged operation (domain 0) config XEN_PHYSDEV_ACCESS - bool "Device-driver domain (physical device access)" + bool "Physical device access" + default y if XEN_PRIVILEGED_GUEST + default n if !XEN_PRIVILEGED_GUEST help - Device-driver domain (physical device access) + Assume access is available to physical hardware devices + (e.g., hard drives, network cards). This allows you to configure + such devices and also includes some low-level support that is + otherwise not compiled into the kernel. + +config XEN_BLKDEV_BACKEND + bool "Block-device backend driver" + default y if XEN_PHYSDEV_ACCESS + default n if !XEN_PHYSDEV_ACCESS + 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_NETDEV_BACKEND + bool "Network-device backend driver" + default y if XEN_PHYSDEV_ACCESS + default n if !XEN_PHYSDEV_ACCESS + 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_BLKDEV_FRONTEND + bool "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 + bool "Network-device frontend driver" + 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. + +if XEN_NETDEV_FRONTEND +config XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER + bool "Pipelined transmitter (DANGEROUS)" + default n + help + The driver will assume that the backend is pipelining packets for + transmission: whenever packets are pending in the remote backend, + the driver will not send asynchronous notifications when it queues + additional packets for transmission. + If the 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. +endif config XEN_WRITABLE_PAGETABLES bool "Use writable pagetables" @@ -49,8 +108,8 @@ config FOREIGN_PAGES config PAGESIZED_SKBS bool - default y if XEN_PHYSDEV_ACCESS - default n if !XEN_PHYSDEV_ACCESS + default y if XEN_NETDEV_BACKEND + default n if !XEN_NETDEV_BACKEND #config VT # bool diff --git a/linux-2.6.8.1-xen-sparse/arch/xen/configs/xen0_defconfig b/linux-2.6.8.1-xen-sparse/arch/xen/configs/xen0_defconfig index 75fac7e487..a118d649cc 100644 --- a/linux-2.6.8.1-xen-sparse/arch/xen/configs/xen0_defconfig +++ b/linux-2.6.8.1-xen-sparse/arch/xen/configs/xen0_defconfig @@ -10,6 +10,11 @@ CONFIG_NO_IDLE_HZ=y # CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PHYSDEV_ACCESS=y +CONFIG_XEN_BLKDEV_BACKEND=y +CONFIG_XEN_NETDEV_BACKEND=y +CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_NETDEV_FRONTEND=y +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set CONFIG_XEN_WRITABLE_PAGETABLES=y CONFIG_FOREIGN_PAGES=y CONFIG_PAGESIZED_SKBS=y diff --git a/linux-2.6.8.1-xen-sparse/arch/xen/configs/xenU_defconfig b/linux-2.6.8.1-xen-sparse/arch/xen/configs/xenU_defconfig index 8d0d9fc5a3..a3efc64d58 100644 --- a/linux-2.6.8.1-xen-sparse/arch/xen/configs/xenU_defconfig +++ b/linux-2.6.8.1-xen-sparse/arch/xen/configs/xenU_defconfig @@ -10,6 +10,11 @@ CONFIG_NO_IDLE_HZ=y # # CONFIG_XEN_PRIVILEGED_GUEST is not set # CONFIG_XEN_PHYSDEV_ACCESS is not set +# CONFIG_XEN_BLKDEV_BACKEND is not set +# CONFIG_XEN_NETDEV_BACKEND is not set +CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_NETDEV_FRONTEND=y +# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set CONFIG_XEN_WRITABLE_PAGETABLES=y CONFIG_FOREIGN_PAGES=y # CONFIG_PAGESIZED_SKBS is not set diff --git a/linux-2.6.8.1-xen-sparse/arch/xen/i386/mm/ioremap.c b/linux-2.6.8.1-xen-sparse/arch/xen/i386/mm/ioremap.c index 1efdacd8c2..8a12a5c93c 100644 --- a/linux-2.6.8.1-xen-sparse/arch/xen/i386/mm/ioremap.c +++ b/linux-2.6.8.1-xen-sparse/arch/xen/i386/mm/ioremap.c @@ -337,8 +337,6 @@ void __init bt_iounmap(void *addr, unsigned long size) #endif /* CONFIG_XEN_PHYSDEV_ACCESS */ -#if defined(CONFIG_XEN_PRIVILEGED_GUEST) - /* These hacky macros avoid phys->machine translations. */ #define __direct_pte(x) ((pte_t) { (x) } ) #define __direct_mk_pte(page_nr,pgprot) \ @@ -481,6 +479,3 @@ int direct_remap_area_pages(struct mm_struct *mm, return 0; } - - -#endif /* CONFIG_XEN_PRIVILEGED_GUEST */ |