ia64/xen-unstable

changeset 2851:0956f3af9fd3

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
author kaf24@freefall.cl.cam.ac.uk
date Wed Nov 03 15:15:42 2004 +0000 (2004-11-03)
parents 00560d53e611 a67d12405a6f
children 123bec0b692a 119930e9e60c
files .rootkeys README tools/check/check_ssl_lib xen/arch/x86/domain.c xen/common/page_alloc.c xen/include/asm-x86/apic.h
line diff
     1.1 --- a/.rootkeys	Wed Nov 03 15:04:51 2004 +0000
     1.2 +++ b/.rootkeys	Wed Nov 03 15:15:42 2004 +0000
     1.3 @@ -299,7 +299,6 @@ 4124b307HDX972-zihuZWXB7R8Vd0w tools/che
     1.4  4124b307P3bZBkTFm6r-3XTbf0phAA tools/check/check_curl_lib
     1.5  4124b307u-FeKvFP9kZnh0rLV0XjGg tools/check/check_logging
     1.6  4124b307tRTjLqzRy60QrUoqN2Fhuw tools/check/check_python
     1.7 -4124b307KcYJMtZ7r48AF-wyhyw-SQ tools/check/check_ssl_lib
     1.8  4124b307XdznSNCv97lrT3RpOdMM1A tools/check/check_twisted
     1.9  4124b307lnAATmulpXYa0M-dzxLBDA tools/check/check_zlib_devel
    1.10  4124b308ly20ptMKQoiztPyP_X68Mw tools/check/check_zlib_lib
     2.1 --- a/README	Wed Nov 03 15:04:51 2004 +0000
     2.2 +++ b/README	Wed Nov 03 15:15:42 2004 +0000
     2.3 @@ -8,25 +8,74 @@
     2.4  ###############################
     2.5  
     2.6  University of Cambridge Computer Laboratory
     2.7 -29 October 2004
     2.8 +3 November 2004
     2.9  
    2.10  http://www.cl.cam.ac.uk/netos/xen/
    2.11  
    2.12 -About the Xen Virtual Machine Monitor
    2.13 -=====================================
    2.14 +What is Xen?
    2.15 +============
    2.16  
    2.17  Xen is a Virtual Machine Monitor (VMM) originally developed by the
    2.18  Systems Research Group of the University of Cambridge Computer
    2.19  Laboratory, as part of the UK-EPSRC funded XenoServers project.
    2.20 +Xen is freely-distributable Open Source software, released under the
    2.21 +GNU GPL.
    2.22  
    2.23  The 2.0 release offers excellent performance, hardware support and
    2.24  enterprise-grade features such as live migration. Linux 2.6, 2.4 and
    2.25  NetBSD 2.0 are already available for Xen, with more operating system
    2.26  ports on the way.
    2.27  
    2.28 -Xen is freely-distributable Open Source software, released under the
    2.29 -GNU GPL.
    2.30 +This file contains some quick-start instructions to install Xen on
    2.31 +your system. For full documentation, see the Xen User Manual. If this
    2.32 +is a pre-built release then you can find the manual at:
    2.33 + dist/install/usr/share/doc/xen/pdf/user.pdf
    2.34 +If you have a source release, then 'make -C docs' will build the
    2.35 +manual at docs/pdf/user.pdf.
    2.36 +
    2.37 +Quick-Start Guide - Pre-Built Binary Release
    2.38 +============================================
    2.39 +
    2.40 +[NB. Unless noted otherwise, all the following steps should be
    2.41 +performed with root privileges.]
    2.42 +
    2.43 +1. Install the binary distribution onto your filesystem:
    2.44 +    # sh ./install.sh
    2.45 +   Amongst other things, this will install Xen and XenLinux kernel
    2.46 +   files in /boot, kernel modules and Python packages in /lib, and
    2.47 +   various control tools in standard 'bin' directories.
    2.48  
    2.49 -For full documentation, see the Xen User Manual in docs/pdf/user.pdf
    2.50 -(after running make -C docs) or the Documentation page on the Xen
    2.51 -website.
    2.52 +2. Configure your bootloader to boot Xen and an initial Linux virtual
    2.53 +   machine. Note that Xen currently only works with GRUB: less common
    2.54 +   alternatives such as LILO are *not* supported. You can most likely
    2.55 +   find your GRUB menu file at /boot/grub/menu.lst: edit this file to
    2.56 +   include an entry like the following:
    2.57 +    # title Xen 2.0 / XenLinux 2.6.9
    2.58 +    #   kernel /boot/xen.gz dom0_mem=<mem-kb> console=vga
    2.59 +    #   module /boot/vmlinuz-2.6.9-xen0 root=<root-dev> ro console=tty0
    2.60 +   For <mem-kb> you should specify the amount of memory, in kilobytes,
    2.61 +   to allocate for use by your initial XenLinux virtual machine. Note
    2.62 +   that Xen itself reserves about 32MB memory for internal use, which
    2.63 +   is not available for allocation to virtual machines.
    2.64 +   For <root-dev>, specify your usual root partition (e.g., /dev/hda1).
    2.65 +
    2.66 +3. Reboot your system and select the "Xen 2.0 / XenLinux 2.6.9" menu
    2.67 +   option. After booting Xen, XenLinux will start and your
    2.68 +   initialisation scripts should execute in the usual way.
    2.69 +
    2.70 +Quick-Start Guide - Source Release
    2.71 +==================================
    2.72 +
    2.73 +First, there are a number of prerequisites for building a Xen source
    2.74 +release. Make sure you have all the following installed, either by
    2.75 +visiting the project webpage or installing a pre-built package
    2.76 +provided by your Linux distributor:
    2.77 +    * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported) 
    2.78 +    * GNU Make
    2.79 +    * GNU Binutils
    2.80 +    * Development install of libcurl (e.g., libcurl-dev)
    2.81 +    * Development install of zlib (e.g., zlib-dev)
    2.82 +    * Development install of Python v2.2 or later (e.g., python-dev)
    2.83 +
    2.84 +[NB. Unless noted otherwise, all the following steps should be
    2.85 +performed with root privileges.]
     3.1 --- a/tools/check/check_ssl_lib	Wed Nov 03 15:04:51 2004 +0000
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,10 +0,0 @@
     3.4 -#!/bin/bash
     3.5 -# CHECK-BUILD CHECK-INSTALL
     3.6 -
     3.7 -function error {
     3.8 -    echo "Check for ssl library failed."
     3.9 -    exit 1
    3.10 -}
    3.11 -
    3.12 -set -e
    3.13 -ldconfig -p | grep libssl.so || error
    3.14 \ No newline at end of file
     4.1 --- a/xen/arch/x86/domain.c	Wed Nov 03 15:04:51 2004 +0000
     4.2 +++ b/xen/arch/x86/domain.c	Wed Nov 03 15:15:42 2004 +0000
     4.3 @@ -699,7 +699,25 @@ int construct_dom0(struct domain *p,
     4.4      }
     4.5  
     4.6      /* Paranoia: scrub DOM0's memory allocation. */
     4.7 -    memset((void *)alloc_start, 0, alloc_end - alloc_start);
     4.8 +    printk("Scrubbing DOM0 RAM: ");
     4.9 +    dst = (char *)alloc_start;
    4.10 +    while ( dst < (char *)alloc_end )
    4.11 +    {
    4.12 +#define SCRUB_BYTES (100 * 1024 * 1024) /* 100MB */
    4.13 +        printk(".");
    4.14 +        touch_nmi_watchdog();
    4.15 +        if ( ((char *)alloc_end - dst) > SCRUB_BYTES )
    4.16 +        {
    4.17 +            memset(dst, 0, SCRUB_BYTES);
    4.18 +            dst += SCRUB_BYTES;
    4.19 +        }
    4.20 +        else
    4.21 +        {
    4.22 +            memset(dst, 0, (char *)alloc_end - dst);
    4.23 +            break;
    4.24 +        }
    4.25 +    }
    4.26 +    printk("done.\n");
    4.27  
    4.28      /* Construct a frame-allocation list for the initial domain. */
    4.29      for ( mfn = (alloc_start>>PAGE_SHIFT); 
     5.1 --- a/xen/common/page_alloc.c	Wed Nov 03 15:04:51 2004 +0000
     5.2 +++ b/xen/common/page_alloc.c	Wed Nov 03 15:15:42 2004 +0000
     5.3 @@ -293,8 +293,17 @@ void scrub_heap_pages(void)
     5.4      void *p;
     5.5      unsigned long pfn, flags;
     5.6  
     5.7 +    printk("Scrubbing Free RAM: ");
     5.8 +
     5.9      for ( pfn = 0; pfn < (bitmap_size * 8); pfn++ )
    5.10      {
    5.11 +        /* Every 100MB, print a progress dot and appease the watchdog. */
    5.12 +        if ( (pfn % ((100*1024*1024)/PAGE_SIZE)) == 0 )
    5.13 +        {
    5.14 +            printk(".");
    5.15 +            touch_nmi_watchdog();
    5.16 +        }
    5.17 +
    5.18          /* Quick lock-free check. */
    5.19          if ( allocated_in_map(pfn) )
    5.20              continue;
    5.21 @@ -311,6 +320,8 @@ void scrub_heap_pages(void)
    5.22          
    5.23          spin_unlock_irqrestore(&heap_lock, flags);
    5.24      }
    5.25 +
    5.26 +    printk("done.\n");
    5.27  }
    5.28  
    5.29  
     6.1 --- a/xen/include/asm-x86/apic.h	Wed Nov 03 15:04:51 2004 +0000
     6.2 +++ b/xen/include/asm-x86/apic.h	Wed Nov 03 15:15:42 2004 +0000
     6.3 @@ -77,7 +77,8 @@ extern void init_apic_mappings (void);
     6.4  extern void smp_local_timer_interrupt (struct xen_regs * regs);
     6.5  extern void setup_APIC_clocks (void);
     6.6  extern void setup_apic_nmi_watchdog (void);
     6.7 -extern inline void nmi_watchdog_tick (struct xen_regs * regs);
     6.8 +extern void nmi_watchdog_tick (struct xen_regs * regs);
     6.9 +extern void touch_nmi_watchdog(void);
    6.10  extern int APIC_init_uniprocessor (void);
    6.11  extern void disable_APIC_timer(void);
    6.12  extern void enable_APIC_timer(void);