aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>2004-11-03 15:15:42 +0000
committerkaf24@freefall.cl.cam.ac.uk <kaf24@freefall.cl.cam.ac.uk>2004-11-03 15:15:42 +0000
commit357d5bcf213d01830c9b0334f578dc2df24ab849 (patch)
tree94ccb5565cac5c53b61e2d1615f1c849f8c92847
parentef4355234b819275e98401bf3915fbda76b161c8 (diff)
parent7653ae61d89d9414a9c1835a1c2b08f487a9f3e6 (diff)
downloadxen-357d5bcf213d01830c9b0334f578dc2df24ab849.tar.gz
xen-357d5bcf213d01830c9b0334f578dc2df24ab849.tar.bz2
xen-357d5bcf213d01830c9b0334f578dc2df24ab849.zip
bitkeeper revision 1.1159.1.352 (4188f61ewtUImmubGZcL4WKujNUhMg)
Merge freefall.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk into freefall.cl.cam.ac.uk:/local/scratch/kaf24/xeno
-rw-r--r--.rootkeys1
-rw-r--r--README65
-rwxr-xr-xtools/check/check_ssl_lib10
-rw-r--r--xen/arch/x86/domain.c20
-rw-r--r--xen/common/page_alloc.c11
-rw-r--r--xen/include/asm-x86/apic.h3
6 files changed, 89 insertions, 21 deletions
diff --git a/.rootkeys b/.rootkeys
index cefb86e532..acc4fb6c0d 100644
--- a/.rootkeys
+++ b/.rootkeys
@@ -299,7 +299,6 @@
4124b307P3bZBkTFm6r-3XTbf0phAA tools/check/check_curl_lib
4124b307u-FeKvFP9kZnh0rLV0XjGg tools/check/check_logging
4124b307tRTjLqzRy60QrUoqN2Fhuw tools/check/check_python
-4124b307KcYJMtZ7r48AF-wyhyw-SQ tools/check/check_ssl_lib
4124b307XdznSNCv97lrT3RpOdMM1A tools/check/check_twisted
4124b307lnAATmulpXYa0M-dzxLBDA tools/check/check_zlib_devel
4124b308ly20ptMKQoiztPyP_X68Mw tools/check/check_zlib_lib
diff --git a/README b/README
index a45e7f3213..a648e64607 100644
--- a/README
+++ b/README
@@ -8,25 +8,74 @@ __ __ ____ ___
###############################
University of Cambridge Computer Laboratory
-29 October 2004
+3 November 2004
http://www.cl.cam.ac.uk/netos/xen/
-About the Xen Virtual Machine Monitor
-=====================================
+What is Xen?
+============
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.
+Xen is freely-distributable Open Source software, released under the
+GNU GPL.
The 2.0 release offers excellent performance, hardware support and
enterprise-grade features such as live migration. Linux 2.6, 2.4 and
NetBSD 2.0 are already available for Xen, with more operating system
ports on the way.
-Xen is freely-distributable Open Source software, released under the
-GNU GPL.
+This file contains some quick-start instructions to install Xen on
+your system. For full documentation, see the Xen User Manual. If this
+is a pre-built release then you can find the manual at:
+ dist/install/usr/share/doc/xen/pdf/user.pdf
+If you have a source release, then 'make -C docs' will build the
+manual at docs/pdf/user.pdf.
+
+Quick-Start Guide - Pre-Built Binary Release
+============================================
+
+[NB. Unless noted otherwise, all the following steps should be
+performed with root privileges.]
+
+1. Install the binary distribution onto your filesystem:
+ # sh ./install.sh
+ Amongst other things, this will install Xen and XenLinux kernel
+ files in /boot, kernel modules and Python packages in /lib, and
+ various control tools in standard 'bin' directories.
+
+2. Configure your bootloader to boot Xen and an initial Linux virtual
+ machine. Note that Xen currently only works with GRUB: less common
+ alternatives such as LILO are *not* supported. You can most likely
+ find your GRUB menu file at /boot/grub/menu.lst: edit this file to
+ include an entry like the following:
+ # title Xen 2.0 / XenLinux 2.6.9
+ # kernel /boot/xen.gz dom0_mem=<mem-kb> console=vga
+ # module /boot/vmlinuz-2.6.9-xen0 root=<root-dev> ro console=tty0
+ For <mem-kb> you should specify the amount of memory, in kilobytes,
+ to allocate for use by your initial XenLinux virtual machine. Note
+ that Xen itself reserves about 32MB memory for internal use, which
+ is not available for allocation to virtual machines.
+ For <root-dev>, specify your usual root partition (e.g., /dev/hda1).
+
+3. Reboot your system and select the "Xen 2.0 / XenLinux 2.6.9" menu
+ option. After booting Xen, XenLinux will start and your
+ initialisation scripts should execute in the usual way.
+
+Quick-Start Guide - Source Release
+==================================
+
+First, there are a number of prerequisites for building a Xen source
+release. Make sure you have all the following installed, either by
+visiting the project webpage or installing a pre-built package
+provided by your Linux distributor:
+ * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported)
+ * GNU Make
+ * GNU Binutils
+ * Development install of libcurl (e.g., libcurl-dev)
+ * Development install of zlib (e.g., zlib-dev)
+ * Development install of Python v2.2 or later (e.g., python-dev)
-For full documentation, see the Xen User Manual in docs/pdf/user.pdf
-(after running make -C docs) or the Documentation page on the Xen
-website.
+[NB. Unless noted otherwise, all the following steps should be
+performed with root privileges.]
diff --git a/tools/check/check_ssl_lib b/tools/check/check_ssl_lib
deleted file mode 100755
index ecd64d4a54..0000000000
--- a/tools/check/check_ssl_lib
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-# CHECK-BUILD CHECK-INSTALL
-
-function error {
- echo "Check for ssl library failed."
- exit 1
-}
-
-set -e
-ldconfig -p | grep libssl.so || error \ No newline at end of file
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index 784027fc11..84ce4afce9 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -699,7 +699,25 @@ int construct_dom0(struct domain *p,
}
/* Paranoia: scrub DOM0's memory allocation. */
- memset((void *)alloc_start, 0, alloc_end - alloc_start);
+ printk("Scrubbing DOM0 RAM: ");
+ dst = (char *)alloc_start;
+ while ( dst < (char *)alloc_end )
+ {
+#define SCRUB_BYTES (100 * 1024 * 1024) /* 100MB */
+ printk(".");
+ touch_nmi_watchdog();
+ if ( ((char *)alloc_end - dst) > SCRUB_BYTES )
+ {
+ memset(dst, 0, SCRUB_BYTES);
+ dst += SCRUB_BYTES;
+ }
+ else
+ {
+ memset(dst, 0, (char *)alloc_end - dst);
+ break;
+ }
+ }
+ printk("done.\n");
/* Construct a frame-allocation list for the initial domain. */
for ( mfn = (alloc_start>>PAGE_SHIFT);
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index ccb7733846..c8c96dbee3 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -293,8 +293,17 @@ void scrub_heap_pages(void)
void *p;
unsigned long pfn, flags;
+ printk("Scrubbing Free RAM: ");
+
for ( pfn = 0; pfn < (bitmap_size * 8); pfn++ )
{
+ /* Every 100MB, print a progress dot and appease the watchdog. */
+ if ( (pfn % ((100*1024*1024)/PAGE_SIZE)) == 0 )
+ {
+ printk(".");
+ touch_nmi_watchdog();
+ }
+
/* Quick lock-free check. */
if ( allocated_in_map(pfn) )
continue;
@@ -311,6 +320,8 @@ void scrub_heap_pages(void)
spin_unlock_irqrestore(&heap_lock, flags);
}
+
+ printk("done.\n");
}
diff --git a/xen/include/asm-x86/apic.h b/xen/include/asm-x86/apic.h
index 2c533fe0b2..54289910ab 100644
--- a/xen/include/asm-x86/apic.h
+++ b/xen/include/asm-x86/apic.h
@@ -77,7 +77,8 @@ extern void init_apic_mappings (void);
extern void smp_local_timer_interrupt (struct xen_regs * regs);
extern void setup_APIC_clocks (void);
extern void setup_apic_nmi_watchdog (void);
-extern inline void nmi_watchdog_tick (struct xen_regs * regs);
+extern void nmi_watchdog_tick (struct xen_regs * regs);
+extern void touch_nmi_watchdog(void);
extern int APIC_init_uniprocessor (void);
extern void disable_APIC_timer(void);
extern void enable_APIC_timer(void);