aboutsummaryrefslogtreecommitdiffstats
path: root/linux-2.6.8.1-xen-sparse/arch
diff options
context:
space:
mode:
authorkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>2004-09-16 13:11:34 +0000
committerkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>2004-09-16 13:11:34 +0000
commit9b35f57c680ff08326a529aee13eae0e58b97ab1 (patch)
treef6890a97b673947dff795f8d299ace4a1835962b /linux-2.6.8.1-xen-sparse/arch
parent18a95d9e9d21a3cda4335b6a8e78e222b339e068 (diff)
downloadxen-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')
-rw-r--r--linux-2.6.8.1-xen-sparse/arch/xen/Kconfig67
-rw-r--r--linux-2.6.8.1-xen-sparse/arch/xen/configs/xen0_defconfig5
-rw-r--r--linux-2.6.8.1-xen-sparse/arch/xen/configs/xenU_defconfig5
-rw-r--r--linux-2.6.8.1-xen-sparse/arch/xen/i386/mm/ioremap.c5
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 */