From 091e3251e3ec5672d33e972e0f15c5c9fa64b0cb Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Sun, 31 Oct 2004 21:51:38 +0000 Subject: bitkeeper revision 1.1159.144.1 (41855e6axlM81uTxTKGLkfyiRdgccw) Fix linux 2.6 arch/xen/Makefile mrproper target --- .rootkeys | 1 - TODO | 50 -------------------------------- linux-2.6.9-xen-sparse/arch/xen/Makefile | 1 + 3 files changed, 1 insertion(+), 51 deletions(-) delete mode 100644 TODO diff --git a/.rootkeys b/.rootkeys index 37ea52e07c..ee88c673bb 100644 --- a/.rootkeys +++ b/.rootkeys @@ -5,7 +5,6 @@ 4177dbbfqsi01p2zgZa0geUOgScONw COPYING 3eb788d6Kleck_Cut0ouGneviGzliQ Makefile 3f5ef5a24IaQasQE2tyMxrfxskMmvw README -3f69d8abYB1vMyD_QVDvzxy5Zscf1A TODO 3f9e7d53iC47UnlfORp9iC1vai6kWw docs/Makefile 3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/figs/xenlogo.eps 4022a73cgxX1ryj1HgS-IwwB6NUi2A docs/misc/XenDebugger-HOWTO diff --git a/TODO b/TODO deleted file mode 100644 index 9d735bb6eb..0000000000 --- a/TODO +++ /dev/null @@ -1,50 +0,0 @@ - - -Known limitations and work in progress -====================================== - -The current Xen Virtual Firewall Router (VFR) implementation in the -snapshot tree is very rudimentary, and in particular, lacks the RSIP -IP port-space sharing across domains that provides a better -alternative to NAT. There's a complete new implementation under -development which also supports much better logging and auditing -support. For now, if you want NAT, see the xen_nat_enable scripts and -get domain0 to do it for you. - -There are also a number of memory management enhancements that didn't -make this release: We have plans for a "universal buffer cache" that -enables otherwise unused system memory to be used by domains in a -read-only fashion. We also have plans for inter-domain shared-memory -to enable high-performance bulk transport for cases where the usual -internal networking performance isn't good enough (e.g. communication -with a internal file server on another domain). - -We have the equivalent of balloon driver functionality to control -domain's memory usage, enabling a domain to give back unused pages to -Xen. This needs properly documenting, and perhaps a way of domain0 -signalling to a domain that it requires it to reduce its memory -footprint, rather than just the domain volunteering (see section on -the improved control interface). - -The current disk scheduler is rather simplistic (batch round robin), -and could be replaced by e.g. Cello if we have QoS isolation -problems. For most things it seems to work OK, but there's currently -no service differentiation or weighting. - -Currently, although Xen runs on SMP and SMT (hyperthreaded) machines, -the scheduling is far from smart -- domains are currently statically -assigned to a CPU when they are created (in a round robin fashion). -The scheduler needs to be modified such that before going idle a -logical CPU looks for work on other run queues (particularly on the -same physical CPU). - -Xen currently only supports uniprocessor guest OSes. We have designed -the Xen interface with MP guests in mind, and plan to build an MP -Linux guest in due course. Basically, an MP guest would consist of -multiple scheduling domains (one per CPU) sharing a single memory -protection domain. The only extra complexity for the Xen VM system is -ensuring that when a page transitions from holding a page table or -page directory to a write-able page, we must ensure that no other CPU -still has the page in its TLB to ensure memory system integrity. One -other issue for supporting MP guests is that we'll need some sort of -CPU gang scheduler, which will require some research. diff --git a/linux-2.6.9-xen-sparse/arch/xen/Makefile b/linux-2.6.9-xen-sparse/arch/xen/Makefile index 224e0aa34f..728d0aa5e1 100644 --- a/linux-2.6.9-xen-sparse/arch/xen/Makefile +++ b/linux-2.6.9-xen-sparse/arch/xen/Makefile @@ -64,6 +64,7 @@ dist: archclean: @if [ -e arch/xen/arch ]; then $(MAKE) $(clean)=arch/xen/arch; fi; @rm -f arch/xen/arch include/.asm-ignore include/asm-xen/asm + @rm -f vmlinux-stripped vmlinuz define archhelp echo '* vmlinuz - Compressed kernel image' -- cgit v1.2.3 From b95812e3ec9834ef33042a4a6a589a2aaa4237e7 Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Sun, 31 Oct 2004 21:54:34 +0000 Subject: bitkeeper revision 1.1159.144.2 (41855f1a4Ckq6iiw4dQN4e_VYJJy9Q) update defconfig file to 2.6.9 --- .../arch/xen/configs/xen0_defconfig | 36 +++++++++++++--------- .../arch/xen/configs/xenU_defconfig | 10 ++++-- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/linux-2.6.9-xen-sparse/arch/xen/configs/xen0_defconfig b/linux-2.6.9-xen-sparse/arch/xen/configs/xen0_defconfig index 63f0dbb80f..0eb8b80171 100644 --- a/linux-2.6.9-xen-sparse/arch/xen/configs/xen0_defconfig +++ b/linux-2.6.9-xen-sparse/arch/xen/configs/xen0_defconfig @@ -1,5 +1,7 @@ # # Automatically generated make config: don't edit +# Linux kernel version: 2.6.9-xen0 +# Sun Oct 31 21:30:07 2004 # CONFIG_XEN=y CONFIG_ARCH_XEN=y @@ -33,6 +35,7 @@ CONFIG_BROKEN_ON_SMP=y # # General setup # +CONFIG_LOCALVERSION="" CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -53,6 +56,8 @@ CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SHMEM=y +# CONFIG_TINY_SHMEM is not set # # Loadable module support @@ -113,10 +118,6 @@ CONFIG_HAVE_DEC_LOCK=y # Bus options (PCI, PCMCIA, EISA, MCA, ISA) # CONFIG_PCI=y -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GOMMCONFIG is not set -CONFIG_PCI_GODIRECT=y -# CONFIG_PCI_GOANY is not set CONFIG_PCI_DIRECT=y CONFIG_PCI_LEGACY_PROC=y # CONFIG_PCI_NAMES is not set @@ -203,6 +204,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_BLK_DEV_XD is not set # CONFIG_BLK_CPQ_DA is not set CONFIG_BLK_CPQ_CISS_DA=y +# CONFIG_CISS_SCSI_TAPE is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_LOOP=y @@ -250,7 +252,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set CONFIG_IDEDMA_PCI_AUTO=y # CONFIG_IDEDMA_ONLYDISK is not set -CONFIG_BLK_DEV_ADMA=y # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set @@ -321,7 +322,6 @@ CONFIG_SCSI_AACRAID=y CONFIG_SCSI_AIC7XXX=y CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 -# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set CONFIG_AIC7XXX_DEBUG_ENABLE=y CONFIG_AIC7XXX_DEBUG_MASK=0 CONFIG_AIC7XXX_REG_PRETTY_PRINT=y @@ -329,7 +329,6 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y CONFIG_SCSI_AIC79XX=y CONFIG_AIC79XX_CMDS_PER_DEVICE=32 CONFIG_AIC79XX_RESET_DELAY_MS=15000 -# CONFIG_AIC79XX_BUILD_FIRMWARE is not set # CONFIG_AIC79XX_ENABLE_RD_STRM is not set CONFIG_AIC79XX_DEBUG_ENABLE=y CONFIG_AIC79XX_DEBUG_MASK=0 @@ -337,7 +336,8 @@ CONFIG_AIC79XX_REG_PRETTY_PRINT=y # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_IN2000 is not set -CONFIG_SCSI_MEGARAID=y +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set CONFIG_SCSI_SATA=y # CONFIG_SCSI_SATA_SVW is not set CONFIG_SCSI_ATA_PIIX=y @@ -412,6 +412,7 @@ CONFIG_BLK_DEV_MD=y # CONFIG_MD_LINEAR is not set CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y +# CONFIG_MD_RAID10 is not set CONFIG_MD_RAID5=y # CONFIG_MD_RAID6 is not set # CONFIG_MD_MULTIPATH is not set @@ -463,6 +464,7 @@ CONFIG_IP_PNP_DHCP=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set # # IP: Virtual Server Configuration @@ -477,6 +479,8 @@ CONFIG_BRIDGE_NETFILTER=y # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m +CONFIG_IP_NF_CT_ACCT=y +# CONFIG_IP_NF_CT_PROTO_SCTP is not set CONFIG_IP_NF_FTP=m # CONFIG_IP_NF_IRC is not set # CONFIG_IP_NF_TFTP is not set @@ -502,18 +506,20 @@ CONFIG_IP_NF_IPTABLES=m # CONFIG_IP_NF_MATCH_CONNTRACK is not set # CONFIG_IP_NF_MATCH_OWNER is not set # CONFIG_IP_NF_MATCH_PHYSDEV is not set +# CONFIG_IP_NF_MATCH_ADDRTYPE is not set +# CONFIG_IP_NF_MATCH_REALM is not set +# CONFIG_IP_NF_MATCH_SCTP is not set +# CONFIG_IP_NF_MATCH_COMMENT is not set # CONFIG_IP_NF_FILTER is not set -# CONFIG_IP_NF_NAT is not set -# CONFIG_IP_NF_MANGLE is not set # CONFIG_IP_NF_TARGET_LOG is not set # CONFIG_IP_NF_TARGET_ULOG is not set # CONFIG_IP_NF_TARGET_TCPMSS is not set +# CONFIG_IP_NF_NAT is not set +# CONFIG_IP_NF_MANGLE is not set +# CONFIG_IP_NF_RAW is not set # CONFIG_IP_NF_ARPTABLES is not set # CONFIG_IP_NF_COMPAT_IPCHAINS is not set # CONFIG_IP_NF_COMPAT_IPFWADM is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_MATCH_ADDRTYPE is not set -# CONFIG_IP_NF_MATCH_REALM is not set # # Bridge: Netfilter Configuration @@ -718,6 +724,7 @@ CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PCIPS2 is not set +# CONFIG_SERIO_RAW is not set # # Input Device Drivers @@ -758,7 +765,6 @@ CONFIG_HW_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 -# CONFIG_QIC02_TAPE is not set # # IPMI @@ -936,6 +942,7 @@ CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set @@ -1008,6 +1015,7 @@ CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_SHA1=m # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set diff --git a/linux-2.6.9-xen-sparse/arch/xen/configs/xenU_defconfig b/linux-2.6.9-xen-sparse/arch/xen/configs/xenU_defconfig index d6940f6fec..1d1ec8135a 100644 --- a/linux-2.6.9-xen-sparse/arch/xen/configs/xenU_defconfig +++ b/linux-2.6.9-xen-sparse/arch/xen/configs/xenU_defconfig @@ -1,5 +1,7 @@ # # Automatically generated make config: don't edit +# Linux kernel version: 2.6.9-xen0 +# Sun Oct 31 21:32:23 2004 # CONFIG_XEN=y CONFIG_ARCH_XEN=y @@ -32,6 +34,7 @@ CONFIG_BROKEN_ON_SMP=y # # General setup # +CONFIG_LOCALVERSION="" CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set @@ -51,6 +54,8 @@ CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SHMEM=y +# CONFIG_TINY_SHMEM is not set # # Loadable module support @@ -180,9 +185,7 @@ CONFIG_BLK_DEV_SD=m # # SCSI low-level drivers # -# CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_SATA is not set -# CONFIG_SCSI_EATA_PIO is not set # CONFIG_SCSI_DEBUG is not set # @@ -217,6 +220,7 @@ CONFIG_IP_PNP=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set # CONFIG_IPV6 is not set # CONFIG_NETFILTER is not set @@ -379,6 +383,7 @@ CONFIG_LOCKD_V4=y # CONFIG_EXPORTFS is not set CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set @@ -451,6 +456,7 @@ CONFIG_CRYPTO_MD5=m # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set -- cgit v1.2.3 From 4705e295c18bf9bfc2b00c032a66368badb95003 Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Sun, 31 Oct 2004 22:03:47 +0000 Subject: bitkeeper revision 1.1159.144.3 (41856143dZVCH2lFdy1jbtLSuhMowA) minor --- BitKeeper/etc/ignore | 2 +- README | 66 ++++++++++++++++++++++++---------------------------- 2 files changed, 31 insertions(+), 37 deletions(-) diff --git a/BitKeeper/etc/ignore b/BitKeeper/etc/ignore index e0c4c689fb..ad49516b63 100644 --- a/BitKeeper/etc/ignore +++ b/BitKeeper/etc/ignore @@ -24,7 +24,7 @@ install install/* linux-*-xen0/* linux-*-xenU/* -linux-xen-sparse +pristine-* netbsd-*-xen0 netbsd-*-xenU netbsd-*-tools diff --git a/README b/README index 517e0b55db..b56495a69c 100644 --- a/README +++ b/README @@ -17,7 +17,7 @@ About the Xen Virtual Machine Monitor "Xen" is a Virtual Machine Monitor (VMM) originally developed by the Systems Research Group of the University of Cambridge Computer -Laboratory, as part of the UK-EPSRC funded XenoServers project. +Laboratory as part of the UK-EPSRC funded XenoServers project. The XenoServers project aims to provide a "public infrastructure for global distributed computing", and Xen plays a key part in that, @@ -32,9 +32,7 @@ Xen has since grown into a project in its own right, enabling us to investigate interesting research issues regarding the best techniques for virtualizing resources such as the CPU, memory, disk and network. The project has been bolstered by support from Intel Research -Cambridge, and HP Labs, who are now working closely with us. We're -also in receipt of support from Microsoft Research Cambridge to port -Windows XP to run on Xen. +Cambridge, and HP Labs, who are now working closely with us. Xen enables multiple operating system images to execute concurrently on the same hardware with very low performance overhead --- much lower @@ -55,43 +53,37 @@ and performance is contained in our October 2003 SOSP paper, available at http://www.cl.cam.ac.uk/netos/papers/2003-xensosp.pdf [update: work to port Xen to x86_64 and IA64 is underway] -Five different operating systems have been ported to run on Xen: -Linux 2.4/2.6, Windows XP, NetBSD, FreeBSD and Plan 9. +To date five different operating systems have been ported to run on +Xen 2.0: Linux 2.4/2.6, NetBSD, FreeBSD and Plan 9. -The Linux 2.4 port (currently Linux 2.4.26) works very well -- we -regularly use it to host complex applications such as PostgreSQL, -Apache, BK servers etc. It runs every user-space applications we've -tried. We refer to our version of Linux ported to run on Xen as -"XenLinux", although really it's just standard Linux ported to a new -virtual CPU architecture that we call xen-x86. +The Linux 2.4 and 2.6 ports works very well -- we regularly use them +to host complex applications such as PostgreSQL, Apache, BK servers +etc. It runs every user-space applications we've tried. We refer to +our version of Linux ported to run on Xen as "XenLinux", although +really it's just standard Linux ported to a new virtual CPU +architecture that we call xen-x86. NetBSD has been ported to Xen by Christian Limpach, and will hopefully soon become part of the standard release. Work on a FreeBSD port has been started by Kip Macy, and we hope to see this complete for the 2.0 release. Ron Minnich has been working on Plan 9. -The Windows XP port is nearly finished. It's running user space -applications and is generally in pretty good shape thanks to some hard -work by a team over the summer. Of course, there are issues with -releasing this code to others. We should be able to release the -source and binaries to anyone that has signed the Microsoft academic -source license, which these days has very reasonable terms. We are in -discussions with Microsoft about the possibility of being able to make -binary releases to a larger user community. Obviously, there are -issues with product activation in this environment which need to be -thought through. +A version of Windows XP was ported to an earlier version of Xen, but +can not be released due to licensing restrictions. We are +investigating alternative approaches to getting Windows XP/2003 +running on Xen, but have no firm timetable as yet. So, for the moment, you only get to run Linux 2.4/2.6 and NetBSD on -Xen, but we hope this will change before too long. Even running -multiple copies of the same OS can be very useful, as it provides a -means of containing faults to one OS image, and also for providing -performance isolation between the various OS, enabling you to either -restrict, or reserve resources for, particular VM instances. +Xen, but we hope this will change before long. Even running multiple +copies of the same OS can be very useful, as it provides a means of +containing faults to one OS image, and also for providing performance +isolation between the various OS, enabling you to either restrict, or +reserve resources for, particular VM instances. It's also useful for development -- each version of Linux can have different patches applied, enabling different kernels to be tried out. For example, the "vservers" patch used by PlanetLab applies -cleanly to our ported version of Linux. +easily to our ported version of Linux. We've successfully booted over 128 copies of Linux on the same machine (a dual CPU hyperthreaded Xeon box) but we imagine that it would be @@ -130,17 +122,18 @@ run on Opterons in 32-bit mode just fine). Xen can currently use up to 4GB of memory. It's possible for x86 machines to address more than that (64GB), but it requires using a -different page table format (3-level rather than 2-level) that we -don't currently support, as we are concentrating on an x86_64 port -that will more easily support large-memory configurations. +different page table format (3-level rather than 2-level). We +currently don't support the 3-level format, as we are concentrating +our efforts on an x86_64 port that will provide a better solution to +large memory configurations. In contrast to previous Xen versions, in Xen 2.0 device drivers run within a privileged guest OS rather than within Xen itself. This means -that we should be compatible with the full set of device hardware -supported by Linux. The default XenLinux build contains support for -relatively modern server-class network and disk hardware, but you can -add suppport for other hardware by configuring your XenLinux kernel in -the normal way (e.g. "make xconfig"). +that we should be compatible with almost the full set of device +hardware supported by Linux. The default XenLinux build contains +support for relatively modern server-class network and disk hardware, +but you can add suppport for other hardware by configuring your +XenLinux kernel in the normal way (e.g. "make xconfig"). Building Xen and XenLinux @@ -214,3 +207,4 @@ The primary tool for starting and controlling domains is "xm". Further documentation is in the docs/ directory. Postscript, PDF and HTML versions of the user manual can be found in the ps/, pdf/ and html/ subdirectories. + -- cgit v1.2.3