From: kaf24@scramble.cl.cam.ac.uk Date: Tue, 23 Mar 2004 11:18:17 +0000 (+0000) Subject: bitkeeper revision 1.824 (40601cf9uRnKyyagj6umr4Oaf_-gWQ) X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~18297 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f914ededc51e14f29b074c98eafd845903096c91;p=xen.git bitkeeper revision 1.824 (40601cf9uRnKyyagj6umr4Oaf_-gWQ) Many files: xeno -> xen renames. xen_proc.c: Rename: xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c -> xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c xen_proc.h: Rename: xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h -> xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h Xen-HOWTO.txt: Rename: docs/Xeno-HOWTO.txt -> docs/Xen-HOWTO.txt --- diff --git a/.rootkeys b/.rootkeys index a022ce035e..b3ac44531b 100644 --- a/.rootkeys +++ b/.rootkeys @@ -9,7 +9,7 @@ 405ef604hIZH5pGi2uwlrlSvUMrutw docs/Console-HOWTO.txt 3f9e7d53iC47UnlfORp9iC1vai6kWw docs/Makefile 40083bb4LVQzRqA3ABz0__pPhGNwtA docs/VBD-HOWTO.txt -4021053fmeFrEyPHcT8JFiDpLNgtHQ docs/Xeno-HOWTO.txt +4021053fmeFrEyPHcT8JFiDpLNgtHQ docs/Xen-HOWTO.txt 3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/eps/xenlogo.eps 3f9e7d63lTwQbp2fnx7yY93epWS-eQ docs/figs/dummy 3f9e7d564bWFB-Czjv1qdmE6o0GqNg docs/interface.tex @@ -647,7 +647,7 @@ 3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ xenolinux-2.4.25-sparse/arch/xen/kernel/traps.c 3e5a4e66-9_NczrVMbuQkoSLyXckIw xenolinux-2.4.25-sparse/arch/xen/lib/Makefile 3e5a4e6637ZDk0BvFEC-aFQs599-ng xenolinux-2.4.25-sparse/arch/xen/lib/delay.c -3f68905cF5i8-NYpIhGjKmh0y8Gu5g xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c +3f68905cF5i8-NYpIhGjKmh0y8Gu5g xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c 3e5a4e66croVgpcJyJuF2ycQw0HuJw xenolinux-2.4.25-sparse/arch/xen/mm/Makefile 3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg xenolinux-2.4.25-sparse/arch/xen/mm/fault.c 3e5a4e668SE9rixq4ahho9rNhLUUFQ xenolinux-2.4.25-sparse/arch/xen/mm/hypervisor.c @@ -684,7 +684,7 @@ 3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ xenolinux-2.4.25-sparse/include/asm-xen/suspend.h 3e5a4e68mTr0zcp9SXDbnd-XLrrfxw xenolinux-2.4.25-sparse/include/asm-xen/system.h 3f1056a9L_kqHcFheV00KbKBzv9j5w xenolinux-2.4.25-sparse/include/asm-xen/vga.h -3f689063nhrIRsMMZjZxMFk7iEINqQ xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h +3f689063nhrIRsMMZjZxMFk7iEINqQ xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h 3f056927gMHl7mWB89rb73JahbhQIA xenolinux-2.4.25-sparse/include/linux/blk.h 3e5a4e68WLX3B8owTvktP3HHOtznPQ xenolinux-2.4.25-sparse/include/linux/major.h 401c0590D_kwJDU59X8NyvqSv_Cl2A xenolinux-2.4.25-sparse/include/linux/sched.h diff --git a/Makefile b/Makefile index c6324ee21d..1c5b4c7370 100644 --- a/Makefile +++ b/Makefile @@ -5,9 +5,9 @@ # cd xenolinux--sparse # ./mkbuildtree # cd -# ARCH=xeno make oldconfig -# ARCH=xeno make dep -# ARCH=xeno make bzImage +# ARCH=xen make oldconfig +# ARCH=xen make dep +# ARCH=xen make bzImage # ( should be a vanilla linux tree with matching version) all: diff --git a/README b/README index c3c67b968e..ce84bc357b 100644 --- a/README +++ b/README @@ -62,8 +62,7 @@ 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 "XenoLinux", although really it's just standard Linux ported to a new -virtual CPU architecture that we call xeno-x86 (abbreviated to just -"xeno"). +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 @@ -147,7 +146,7 @@ can be used to clone the repository and perform a full build. The build procedure for xenolinux is slightly complicated as its done by running the 'mkbuildtree' script over a pristine Linux tree to turn -it into a xenolinux tree by adding the 'xeno' architecture. +it into a xenolinux tree by adding the 'xen' architecture. There's also a recent pre-built source tree on the project downloads page: http://www.cl.cam.ac.uk/netos/xen/downloads/xeno-1.2.tar.gz @@ -160,6 +159,6 @@ README.CD contains some example invocations. See example Python scripts in tools/examples/ and the associated README. -Further documentation is in docs/ (e.g., docs/Xeno-HOWTO), and also in +Further documentation is in docs/ (e.g., docs/Xen-HOWTO), and also in diff --git a/README.CD b/README.CD index a387d0694e..61c04d61d2 100644 --- a/README.CD +++ b/README.CD @@ -577,7 +577,7 @@ like normal linux kernels. Modules should be installed under If there's some kernel feature that hasn't been built into our default kernel, there's a pretty good change that if its a non-hardware related option you'll just be able to enable it and rebuild. If its -not on the xconfig menu, hack the arch/xeno/config.in to put the menu +not on the xconfig menu, hack the arch/xen/config.in to put the menu back in. If you're going to use the link local 169.254.1.x addresses to diff --git a/docs/Makefile b/docs/Makefile index 97836315c8..8d6a4dfe98 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -21,7 +21,7 @@ clean: install: $(DOCUMENTS) mkdir -p $(prefix)/usr/share/doc/xen - cp -a $(DOCUMENTS) VBD-HOWTO.txt Xeno-1.2-HOWTO.txt $(prefix)/usr/share/doc/xen + cp -a $(DOCUMENTS) VBD-HOWTO.txt Xen-HOWTO.txt $(prefix)/usr/share/doc/xen %.pdf: %.ps ps2pdf $< $@ diff --git a/docs/Xen-HOWTO.txt b/docs/Xen-HOWTO.txt new file mode 100644 index 0000000000..3665a2ce79 --- /dev/null +++ b/docs/Xen-HOWTO.txt @@ -0,0 +1,362 @@ +########################################### +Xen HOWTO + +University of Cambridge Computer Laboratory + +http://www.cl.cam.ac.uk/netos/xen +############################# + + +Get Xen Source Code +============================= + +The public master BK repository for the 1.2 release lives at: +'bk://xen.bkbits.net/xeno-1.2.bk' + +To fetch a local copy, first download the BitKeeper tools at: +http://www.bitmover.com/download with username 'bitkeeper' and +password 'get bitkeeper'. + +Then install the tools and then run: +# bk clone bk://xen.bkbits.net/xeno-1.2.bk + +Under your current directory, a new directory named 'xeno-1.2.bk' has +been created, which contains all the necessary source codes for the +Xen hypervisor and Linux guest OSes. + +To get newest changes to the repository, run +# cd xeno-1.2.bk +# bk pull + + +Build Xen +============================= + +Hint: To see how to build Xen and all the control tools, inspect the +tools/misc/xen-clone script in the BK repository. This script can be +used to clone the repository and perform a full build. + +To build Xen manually: + +# cd xeno-1.2.bk/xen +# make clean +# make + +This will (should) produce a file called 'xen' in the current +directory. This is the ELF 32-bit LSB executable file of Xen. You +can also find a gzip version, named 'xen.gz'. + +To install the built files on your server under /usr, type 'make +install' at the root of the BK repository. You will need to be root to +do this! + +Hint: There is also a 'make dist' rule which copies built files to an +install directory just outside the BK repo; if this suits your setup, +go for it. + + +Build Linux as a Xen guest OS +============================== + +This is a little more involved since the repository only contains a +"sparse" tree -- this is essentially an 'overlay' on a standard linux +kernel source tree. It contains only those files currently 'in play' +which are either modified versions of files in the vanilla linux tree, +or brand new files specific to the Xen port. + +So, first you need a vanilla linux-2.4.24 tree, which is located at: +http://www.kernel.org/pub/linux/kernel/v2.4 + +Then: + # mv linux-2.4.24.tar.gz /xeno-1.2.bk + # cd /xeno-1.2.bk + # tar -zxvf linux-2.4.24.tar.gz + +You'll find a new directory 'linux-2.4.24' which contains all +the vanilla Linux 2.4.24 kernel source codes. + +Hint: You should choose the vanilla linux kernel tree that has the +same version as the "sparse" tree. + +Next, you need to 'overlay' this sparse tree on the full vanilla Linux +kernel tree: + + # cd /xeno-1.2.bk/xenolinux-2.4.24-sparse + # ./mkbuildtree ../linux-2.4.24 + +Finally, rename the buildtree since it is now a 'xenolinux' buildtree. + + # cd /xeno-1.2.bk + # mv linux-2.4.24 xenolinux-2.4.24 + +Now that the buildtree is there, you can build the xenolinux kernel. +The default configuration should work fine for most people (use 'make +oldconfig') but you can customise using one of the other config tools +if you want. + + # cd /xeno-1.2.bk/xenolinux-2.4.24 + # ARCH=xen make oldconfig { or menuconfig, or xconfig, or config } + # ARCH=xen make dep + # ARCH=xen make bzImage + +Assuming the build works, you'll end up with +/xeno-1.2.bk/xenolinux-2.4.24/arch/xen/boot/xenolinux.gz. This is the +gzip version of XenoLinux kernel image. + + +Build the Domain Control Tools +============================== + +Under '/xeno-1.2.bk/tools', there are three sub-directories: +'balloon', 'xc' and 'misc', each containing +a group of tools. You can enter any of the four sub-directories +and type 'make' to compile the corresponding group of tools. +Or you can type 'make' under '/xeno-1.2.bk/tools' to compile +all the tools. + +In order to compile the control-interface library in 'xc' you must +have zlib and development headers installed. Also you will need at +least Python v2.2. + +'make install' in the tools directory will place executables and +libraries in /usr/bin and /usr/lib. You will need to be root to do this! + +As noted earlier, 'make dist' installs files to a local 'install' +directory just outside the BK repository. These files will then need +to be installed manually onto the server. + +The Example Scripts +=================== + +The scripts in tools/examples/ are generally useful for +administering a Xen-based system. You can install them by running +'make install' in that directory. + +The python scripts (*.py) are the main tools for controlling +Xen domains. + +'defaults' and 'democd' are example configuration files for starting +new domains. + +'xendomains' is a Sys-V style init script for starting and stopping +Xen domains when the system boots / shuts down. + +These will be discussed below in more detail. + + +Installation +============================== + +First: +# cp /xen-1.2.bk/xen/xen.gz /boot/xen.gz +# cp /xen-1.2.bk/xenolinux-2.4.24/arch/xen/boot/xenolinux.gz /boot/xenolinux.gz + +Second, you must have 'GNU Grub' installed. Then you need to edit +the Grub configuration file '/boot/grub/menu.lst'. + +A typical Grub menu option might look like: + +title Xen 1.2 / XenoLinux 2.4.24 + kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1 noht + module /boot/xenolinux.gz root=/dev/sda4 ro console=tty0 + +The first line specifies which Xen image to use, and what command line +arguments to pass to Xen. In this case we set the maximum amount of +memory to allocate to domain0, and enable serial I/O at 115200 baud. +We could also disable smp support (nosmp) or disable hyper-threading +support (noht). If you have multiple network interface you can use +ifname=ethXX to select which one to use. If your network card is +unsupported, use ifname=dummy + +The second line specifies which XenoLinux image to use, and the +standard linux command line arguments to pass to the kernel. In this +case, we're configuring the root partition and stating that it should +(initially) be mounted read-only (normal practice). + +The following is a list of command line arguments to pass to Xen: + + ignorebiostables Disable parsing of BIOS-supplied tables. This may + help with some chipsets that aren't fully supported + by Xen. If you specify this option then ACPI tables are + also ignored, and SMP support is disabled. + + noreboot Don't reboot the machine automatically on errors. + This is useful to catch debug output if you aren't + catching console messages via the serial line. + + nosmp Disable SMP support. + This option is implied by 'ignorebiostables'. + + noacpi Disable ACPI tables, which confuse Xen on some chipsets. + This option is implied by 'ignorebiostables'. + + watchdog Enable NMI watchdog which can report certain failures. + + noht Disable Hyperthreading. + + ifname=ethXX Select which Ethernet interface to use. + + ifname=dummy Don't use any network interface. + + com1=,DPS[,,] + com2=,DPS[,,] + Xen supports up to two 16550-compatible serial ports. + For example: 'com1=9600,8n1,0x408,5' maps COM1 to a + 9600-baud port, 8 data bits, no parity, 1 stop bit, + I/O port base 0x408, IRQ 5. + If the I/O base and IRQ are standard (com1:0x3f8,4; + com2:0x2f8,3) then they need not be specified. + + console= + Specify the destination for Xen console I/O. + This is a comma-separated list of, for example: + vga: use VGA console and allow keyboard input + com1: use serial port com1 + com2H: use serial port com2. Transmitted chars will + have the MSB set. Received chars must have + MSB set. + com2L: use serial port com2. Transmitted chars will + have the MSB cleared. Received chars must + have MSB cleared. + The latter two examples allow a single port to be + shared by two subsystems (eg. console and + debugger). Sharing is controlled by MSB of each + transmitted/received character. + [NB. Default for this option is 'com1,tty'] + + dom0_mem=xxx Set the maximum amount of memory for domain0. + + tbuf_size=xxx Set the size of the per-cpu trace buffers, in pages + (default 1). Note that the trace buffers are only + enabled in debug builds. Most users can ignore + this feature completely. + +Boot into Domain 0 +============================== + +Reboot your computer; After selecting the kernel to boot, stand back +and watch Xen boot, closely followed by "domain 0" running the +XenoLinux kernel. Depending on which root partition you have assigned +to XenoLinux kernel in Grub configuration file, you can use the +corresponding username / password to log in. + +Once logged in, it should look just like any regular linux box. All +the usual tools and commands should work as per usual. + + +Start New Domains +============================== + +You must be 'root' to start new domains. + +Make sure you have successfully configured at least one +physical network interface. Then: + +# xen_nat_enable + +The xc_dom_create.py program is useful for starting Xen domains. +You can specify configuration files using the -f switch on the command +line. The default configuration is in /etc/xc/defaults. You can +create custom versions of this to suit your local configuration. + +You can override the settings in a configuration file using command +line arguments to xc_dom_create.py. However, you may find it simplest +to create a separate configuration file for each domain you start. + +xc_dom_create.py will print the local TCP port to which you should +connect to perform console I/O. A suitable console client is provided +by the Python module xenctl.console_client: running this module from +the command line with and parameters will start a +terminal session. This module is also installed as /usr/bin/xencons, +from a copy in tools/misc/xencons. An alternative to manually running +a terminal client is to specify '-c' to xc_dom_create.py, or add +'auto_console=True' to the defaults file. This will cause +xc_dom_create.py to automatically become teh console terminal after +starting the domain. + +Boot-time output can be directed to this 'virtual console' by +specifying 'console=xencons0' as a boot parameter. It is also possible +to log in via the virtual console. To do this, you must run a mingetty +on the virtual console, which you can achieve as follows: + # mkdir -p /dev/xen + # mknod /dev/xen/cons c 4 123 + # echo "c:2345:respawn:/sbin/mingetty --noclear xen/cons" >>/etc/inittab +If you wish to permit root logins via the virtual console then you must +also add 'xen/cons' to the list of trusted ttys in /etc/securetty. + + +Manage Running Domains +============================== + +You can see a list of existing domains with: +# xc_dom_control.py list + +In order to stop a domain, you use: +# xc_dom_control.py stop + +To shutdown a domain cleanly use: +# xc_dom_control.py shutdown + +To destroy a domain immediately: +# xc_dom_control.py destroy + +There are other more advanced options, including pinning domains to +specific CPUs and saving / resuming domains to / from disk files. To +get more information, run the tool without any arguments: +# xc_dom_control.py + +There is more information available in the Xen README files, the +VBD-HOWTO and the contributed FAQ / HOWTO documents on the web. + + +Other Control Tasks using Python +================================ + +A Python module 'Xc' is installed as part of the tools-install +process. This can be imported, and an 'xc object' instantiated, to +provide access to privileged command operations: + +# import Xc +# xc = Xc.new() +# dir(xc) +# help(xc.domain_create) + +In this way you can see that the class 'xc' contains useful +documentation for you to consult. + +A further package of useful routines (xenctl) is also installed: + +# import xenctl.utils +# help(xenctl.utils) + +You can use these modules to write your own custom scripts or you can +customise the scripts supplied in the Xen distribution. + + +Automatically start / stop domains at boot / shutdown +===================================================== + +A Sys-V style init script for RedHat systems is provided in +tools/examples/xendomains. When you run 'make install' in that +directory, it should be automatically copied to /etc/init.d/. You can +then enable it using the chkconfig command, e.g.: + +# chkconfig --add xendomains + +By default, this will start the boot-time domains in runlevels 3, 4 +and 5. To specify a domain is to start at boot-time, place its +configuration file (or a link to it) under /etc/xc/auto/. + +The script will also stop ALL domains when the system is shut down, +even domains that it did not start originally. + +You can also use the "service" command (part of the RedHat standard +distribution) to run this script manually, e.g: + +# service xendomains start + +Starts all the domains with config files under /etc/xc/auto/. + +# service xendomains stop + +Shuts down ALL running Xen domains. diff --git a/docs/Xeno-HOWTO.txt b/docs/Xeno-HOWTO.txt deleted file mode 100644 index 7f3ad7297d..0000000000 --- a/docs/Xeno-HOWTO.txt +++ /dev/null @@ -1,362 +0,0 @@ -########################################### -Xeno HOWTO - -University of Cambridge Computer Laboratory - -http://www.cl.cam.ac.uk/netos/xen -############################# - - -Get Xeno Source Codes -========================== - -The public master BK repository for the 1.2 release lives at: -'bk://xen.bkbits.net/xeno-1.2.bk' - -To fetch a local copy, first download the BitKeeper tools at: -http://www.bitmover.com/download with username 'bitkeeper' and -password 'get bitkeeper'. - -Then install the tools and then run: -# bk clone bk://xen.bkbits.net/xeno-1.2.bk - -Under your current directory, a new directory named 'xeno-1.2.bk' has -been created, which contains all the source codes for Xen and -XenoLinux. - -To get newest changes to the repository, run -# cd xeno-1.2.bk -# bk pull - - -Build Xen -============================= - -Hint: To see how to build Xen and all the control tools, inspect the -tools/misc/xen-clone script in the BK repository. This script can be -used to clone the repository and perform a full build. - -To build Xen manually: - -# cd xeno-1.2.bk/xen -# make clean -# make - -This will (should) produce a file called 'xen' in the current -directory. This is the ELF 32-bit LSB executable file of Xen. You -can also find a gzip version, named 'xen.gz'. - -To install the built files on your Xenoserver under /usr, type 'make -install' at the root of the BK repository. You will need to be root to -do this! - -Hint: There is also a 'make dist' rule which copies built files to an -install directory just outside the BK repo; if this suits your setup, -go for it. - - -Build XenoLinux -============================== - -This is a little more involved since the repository only contains a -"sparse" tree -- this is essentially an 'overlay' on a standard linux -kernel source tree. It contains only those files currently 'in play' -which are either modified versions of files in the vanilla linux tree, -or brand new files specific to XenoLinux. - -So, first you need a vanilla linux-2.4.24 tree, which is located at: -http://www.kernel.org/pub/linux/kernel/v2.4 - -Then: - # mv linux-2.4.24.tar.gz /xeno-1.2.bk - # cd /xeno-1.2.bk - # tar -zxvf linux-2.4.24.tar.gz - -You'll find a new directory 'linux-2.4.24' which contains all -the vanilla Linux 2.4.24 kernel source codes. - -Hint: You should choose the vanilla linux kernel tree that has the -same version as the "sparse" tree. - -Next, you need to 'overlay' this sparse tree on the full vanilla Linux -kernel tree: - - # cd /xeno-1.2.bk/xenolinux-2.4.24-sparse - # ./mkbuildtree ../linux-2.4.24 - -Finally, rename the buildtree since it is now a xenolinux buildtree. - - # cd /xeno-1.2.bk - # mv linux-2.4.24 xenolinux-2.4.24 - -Now that the buildtree is there, you can build the xenolinux kernel. -The default configuration should work fine for most people (use 'make -oldconfig') but you can customise using one of the other config tools -if you want. - - # cd /xeno-1.2.bk/xenolinux-2.4.24 - # ARCH=xeno make oldconfig { or menuconfig, or xconfig, or config } - # ARCH=xeno make dep - # ARCH=xeno make bzImage - -Assuming the build works, you'll end up with -/xeno-1.2.bk/xenolinux-2.4.24/arch/xeno/boot/xenolinux.gz. This is the -gzip version of XenoLinux kernel image. - - -Build the Domain Control Tools -============================== - -Under '/xeno-1.2.bk/tools', there are three sub-directories: -'balloon', 'xc' and 'misc', each containing -a group of tools. You can enter any of the four sub-directories -and type 'make' to compile the corresponding group of tools. -Or you can type 'make' under '/xeno-1.2.bk/tools' to compile -all the tools. - -In order to compile the control-interface library in 'xc' you must -have zlib and development headers installed. Also you will need at -least Python v2.2. - -'make install' in the tools directory will place executables and -libraries in /usr/bin and /usr/lib. You will need to be root to do this! - -As noted earlier, 'make dist' installs files to a local 'install' -directory just outside the BK repository. These files will then need -to be installed manually onto the Xenoserver. - -The Example Scripts -=================== - -The scripts in tools/examples/ are generally useful for -administering a Xen-based system. You can install them by running -'make install' in that directory. - -The python scripts (*.py) are the main tools for controlling -Xen domains. - -'defaults' and 'democd' are example configuration files for starting -new domains. - -'xendomains' is a Sys-V style init script for starting and stopping -Xen domains when the system boots / shuts down. - -These will be discussed below in more detail. - - -Installation -============================== - -First: -# cp /xen-1.2.bk/xen/xen.gz /boot/xen.gz -# cp /xen-1.2.bk/xenolinux-2.4.24/arch/xeno/boot/xenolinux.gz /boot/xenolinux.gz - -Second, you must have 'GNU Grub' installed. Then you need to edit -the Grub configuration file '/boot/grub/menu.lst'. - -A typical Grub menu option might look like: - -title Xen 1.2 / XenoLinux 2.4.24 - kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1 noht - module /boot/xenolinux.gz root=/dev/sda4 ro console=tty0 - -The first line specifies which Xen image to use, and what command line -arguments to pass to Xen. In this case we set the maximum amount of -memory to allocate to domain0, and enable serial I/O at 115200 baud. -We could also disable smp support (nosmp) or disable hyper-threading -support (noht). If you have multiple network interface you can use -ifname=ethXX to select which one to use. If your network card is -unsupported, use ifname=dummy - -The second line specifies which XenoLinux image to use, and the -standard linux command line arguments to pass to the kernel. In this -case, we're configuring the root partition and stating that it should -(initially) be mounted read-only (normal practice). - -The following is a list of command line arguments to pass to Xen: - - ignorebiostables Disable parsing of BIOS-supplied tables. This may - help with some chipsets that aren't fully supported - by Xen. If you specify this option then ACPI tables are - also ignored, and SMP support is disabled. - - noreboot Don't reboot the machine automatically on errors. - This is useful to catch debug output if you aren't - catching console messages via the serial line. - - nosmp Disable SMP support. - This option is implied by 'ignorebiostables'. - - noacpi Disable ACPI tables, which confuse Xen on some chipsets. - This option is implied by 'ignorebiostables'. - - watchdog Enable NMI watchdog which can report certain failures. - - noht Disable Hyperthreading. - - ifname=ethXX Select which Ethernet interface to use. - - ifname=dummy Don't use any network interface. - - com1=,DPS[,,] - com2=,DPS[,,] - Xen supports up to two 16550-compatible serial ports. - For example: 'com1=9600,8n1,0x408,5' maps COM1 to a - 9600-baud port, 8 data bits, no parity, 1 stop bit, - I/O port base 0x408, IRQ 5. - If the I/O base and IRQ are standard (com1:0x3f8,4; - com2:0x2f8,3) then they need not be specified. - - console= - Specify the destination for Xen console I/O. - This is a comma-separated list of, for example: - vga: use VGA console and allow keyboard input - com1: use serial port com1 - com2H: use serial port com2. Transmitted chars will - have the MSB set. Received chars must have - MSB set. - com2L: use serial port com2. Transmitted chars will - have the MSB cleared. Received chars must - have MSB cleared. - The latter two examples allow a single port to be - shared by two subsystems (eg. console and - debugger). Sharing is controlled by MSB of each - transmitted/received character. - [NB. Default for this option is 'com1,tty'] - - dom0_mem=xxx Set the maximum amount of memory for domain0. - - tbuf_size=xxx Set the size of the per-cpu trace buffers, in pages - (default 1). Note that the trace buffers are only - enabled in debug builds. Most users can ignore - this feature completely. - -Boot into Domain 0 -============================== - -Reboot your computer; After selecting the kernel to boot, stand back -and watch Xen boot, closely followed by "domain 0" running the -XenoLinux kernel. Depending on which root partition you have assigned -to XenoLinux kernel in Grub configuration file, you can use the -corresponding username / password to log in. - -Once logged in, it should look just like any regular linux box. All -the usual tools and commands should work as per usual. - - -Start New Domains -============================== - -You must be 'root' to start new domains. - -Make sure you have successfully configured at least one -physical network interface. Then: - -# xen_nat_enable - -The xc_dom_create.py program is useful for starting Xen domains. -You can specify configuration files using the -f switch on the command -line. The default configuration is in /etc/xc/defaults. You can -create custom versions of this to suit your local configuration. - -You can override the settings in a configuration file using command -line arguments to xc_dom_create.py. However, you may find it simplest -to create a separate configuration file for each domain you start. - -xc_dom_create.py will print the local TCP port to which you should -connect to perform console I/O. A suitable console client is provided -by the Python module xenctl.console_client: running this module from -the command line with and parameters will start a -terminal session. This module is also installed as /usr/bin/xencons, -from a copy in tools/misc/xencons. An alternative to manually running -a terminal client is to specify '-c' to xc_dom_create.py, or add -'auto_console=True' to the defaults file. This will cause -xc_dom_create.py to automatically become teh console terminal after -starting the domain. - -Boot-time output can be directed to this 'virtual console' by -specifying 'console=xencons0' as a boot parameter. It is also possible -to log in via the virtual console. To do this, you must run a mingetty -on the virtual console, which you can achieve as follows: - # mkdir -p /dev/xen - # mknod /dev/xen/cons c 4 123 - # echo "c:2345:respawn:/sbin/mingetty --noclear xen/cons" >>/etc/inittab -If you wish to permit root logins via the virtual console then you must -also add 'xen/cons' to the list of trusted ttys in /etc/securetty. - - -Manage Running Domains -============================== - -You can see a list of existing domains with: -# xc_dom_control.py list - -In order to stop a domain, you use: -# xc_dom_control.py stop - -To shutdown a domain cleanly use: -# xc_dom_control.py shutdown - -To destroy a domain immediately: -# xc_dom_control.py destroy - -There are other more advanced options, including pinning domains to -specific CPUs and saving / resuming domains to / from disk files. To -get more information, run the tool without any arguments: -# xc_dom_control.py - -There is more information available in the Xen README files, the -VBD-HOWTO and the contributed FAQ / HOWTO documents on the web. - - -Other Control Tasks using Python -================================ - -A Python module 'Xc' is installed as part of the tools-install -process. This can be imported, and an 'xc object' instantiated, to -provide access to privileged command operations: - -# import Xc -# xc = Xc.new() -# dir(xc) -# help(xc.domain_create) - -In this way you can see that the class 'xc' contains useful -documentation for you to consult. - -A further package of useful routines (xenctl) is also installed: - -# import xenctl.utils -# help(xenctl.utils) - -You can use these modules to write your own custom scripts or you can -customise the scripts supplied in the Xen distribution. - - -Automatically start / stop domains at boot / shutdown -===================================================== - -A Sys-V style init script for RedHat systems is provided in -tools/examples/xendomains. When you run 'make install' in that -directory, it should be automatically copied to /etc/init.d/. You can -then enable it using the chkconfig command, e.g.: - -# chkconfig --add xendomains - -By default, this will start the boot-time domains in runlevels 3, 4 -and 5. To specify a domain is to start at boot-time, place its -configuration file (or a link to it) under /etc/xc/auto/. - -The script will also stop ALL domains when the system is shut down, -even domains that it did not start originally. - -You can also use the "service" command (part of the RedHat standard -distribution) to run this script manually, e.g: - -# service xendomains start - -Starts all the domains with config files under /etc/xc/auto/. - -# service xendomains stop - -Shuts down ALL running Xen domains. diff --git a/docs/interface.tex b/docs/interface.tex index 84003de1b6..2df158fff8 100644 --- a/docs/interface.tex +++ b/docs/interface.tex @@ -705,7 +705,7 @@ behaviours. \subsection{Internal API} To use the trace buffer functionality from within Xen, you must {\tt \#include -}, which contains definitions related to the trace buffer. Trace +}, which contains definitions related to the trace buffer. Trace events are inserted into the buffer using the {\tt TRACE\_xD} ({\tt x} = 0, 1, 2, 3, 4 or 5) macros. These all take an event number, plus {\tt x} additional (32-bit) data as their arguments. For trace buffer-enabled builds of Xen these @@ -718,7 +718,7 @@ overheads. By default, the trace buffer is enabled only in debug builds (i.e. {\tt NDEBUG} is not defined). It can be enabled separately by defining {\tt TRACE\_BUFFER}, -either in {\tt } or on the gcc command line. +either in {\tt } or on the gcc command line. \subsection{Dumping trace data} diff --git a/docs/pdb.txt b/docs/pdb.txt index 0d2bcf4692..09cec283df 100644 --- a/docs/pdb.txt +++ b/docs/pdb.txt @@ -57,8 +57,8 @@ Xen Configuration Symbolic debugging infomration is quite helpful too: xeno.bk/xen/arch/i386/Rules.mk add -g to CFLAGS to compile Xen with symbols - xeno.bk/xenolinux-2.4.24-sparse/arch/xeno/Makefile - add -g to CFLAGS to compile XenoLinux with symbols + xeno.bk/xenolinux-2.4.24-sparse/arch/xen/Makefile + add -g to CFLAGS to compile Linux with symbols You may also want to consider dedicating a register to the frame pointer (disable the -fomit-frame-pointer compile flag). @@ -97,7 +97,7 @@ GDB 6.0 Usage ----- -1. Boot Xen and XenoLinux +1. Boot Xen and Linux 2. Interrupt Xen by pressing 'D' at the console You should see the console message: pdb_handle_exception [0x88][0xfc5c9d88] diff --git a/extras/mini-os/h/types.h b/extras/mini-os/h/types.h index 4f87a74e99..85ede91c13 100644 --- a/extras/mini-os/h/types.h +++ b/extras/mini-os/h/types.h @@ -9,7 +9,7 @@ * * Date: May 2003 * - * Environment: Xeno Minimal OS + * Environment: Xen Minimal OS * Description: a random collection of type definitions * **************************************************************************** diff --git a/extras/mini-os/kernel.c b/extras/mini-os/kernel.c index aa944f50c3..0afd864cf5 100644 --- a/extras/mini-os/kernel.c +++ b/extras/mini-os/kernel.c @@ -96,7 +96,7 @@ void start_kernel(start_info_t *si) __sti(); /* print out some useful information */ - printk("Xeno Minimal OS!\n"); + printk("Xen Minimal OS!\n"); printk("start_info: %p\n", si); printk(" nr_pages: %lu", si->nr_pages); printk(" shared_inf: %08lx\n", si->shared_info); diff --git a/tools/misc/xen-clone b/tools/misc/xen-clone index 43ffb498ea..30da8c2c42 100755 --- a/tools/misc/xen-clone +++ b/tools/misc/xen-clone @@ -86,11 +86,11 @@ cd ../.. mv linux-${LINUX_VER} xenolinux-${LINUX_VER} cd xenolinux-${LINUX_VER} -ARCH=xeno make oldconfig -ARCH=xeno make dep -ARCH=xeno make bzImage -ARCH=xeno make dist || ARCH=xeno make install -ARCH=xeno make modules -ARCH=xeno make INSTALL_MOD_PATH=${TOP}/install modules_install +ARCH=xen make oldconfig +ARCH=xen make dep +ARCH=xen make bzImage +ARCH=xen make dist || ARCH=xen make install +ARCH=xen make modules +ARCH=xen make INSTALL_MOD_PATH=${TOP}/install modules_install cd .. diff --git a/tools/xc/lib/xc_linux_restore.c b/tools/xc/lib/xc_linux_restore.c index f0a2127bcc..c82bb5c10d 100644 --- a/tools/xc/lib/xc_linux_restore.c +++ b/tools/xc/lib/xc_linux_restore.c @@ -1,13 +1,13 @@ /****************************************************************************** * xc_linux_restore.c * - * Restore the state of a Xenolinux session. + * Restore the state of a Linux session. * * Copyright (c) 2003, K A Fraser. */ #include "xc_private.h" -#include +#include #include /* This may allow us to create a 'quiet' command-line option, if necessary. */ diff --git a/tools/xc/lib/xc_linux_save.c b/tools/xc/lib/xc_linux_save.c index aece21a017..5168a58bd2 100644 --- a/tools/xc/lib/xc_linux_save.c +++ b/tools/xc/lib/xc_linux_save.c @@ -1,13 +1,13 @@ /****************************************************************************** * xc_linux_save.c * - * Save the state of a running Xenolinux session. + * Save the state of a running Linux session. * * Copyright (c) 2003, K A Fraser. */ #include "xc_private.h" -#include +#include #include /* This may allow us to create a 'quiet' command-line option, if necessary. */ diff --git a/tools/xc/lib/xc_private.h b/tools/xc/lib/xc_private.h index 8762790836..8e3cae3f52 100644 --- a/tools/xc/lib/xc_private.h +++ b/tools/xc/lib/xc_private.h @@ -16,7 +16,7 @@ #include "xc.h" -#include +#include /* from xen/include/hypervisor-ifs */ #include diff --git a/xenolinux-2.4.25-sparse/Makefile b/xenolinux-2.4.25-sparse/Makefile index 23c647e495..ab8d46856f 100644 --- a/xenolinux-2.4.25-sparse/Makefile +++ b/xenolinux-2.4.25-sparse/Makefile @@ -10,7 +10,12 @@ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) # This will be overriden for Xen and UML builds. SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) ARCH ?= $(SUBARCH) -ARCH := $(ARCH:xeno=xen) ## Temporary hack while users adjust to new archname + +## XXX The following hack can be discarded after users have adjusted to the +## architectural name change 'xeno' -> 'xen'. +ifeq ($(ARCH),xeno) + ARCH := xen +endif KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g") diff --git a/xenolinux-2.4.25-sparse/arch/xen/drivers/console/console.c b/xenolinux-2.4.25-sparse/arch/xen/drivers/console/console.c index f4d97a65ba..2a7ff12adf 100644 --- a/xenolinux-2.4.25-sparse/arch/xen/drivers/console/console.c +++ b/xenolinux-2.4.25-sparse/arch/xen/drivers/console/console.c @@ -87,8 +87,8 @@ static void priv_conwrite(const char *s, unsigned int count) } } -static void xen_console_write(struct console *co, const char *s, - unsigned int count) +static void kcons_write(struct console *co, const char *s, + unsigned int count) { unsigned long flags; spin_lock_irqsave(&xen_console_lock, flags); @@ -99,7 +99,7 @@ static void xen_console_write(struct console *co, const char *s, spin_unlock_irqrestore(&xen_console_lock, flags); } -static kdev_t xen_console_device(struct console *c) +static kdev_t kcons_device(struct console *c) { /* * This is the magic that binds our "struct console" to our @@ -108,19 +108,17 @@ static kdev_t xen_console_device(struct console *c) return MKDEV(TTY_MAJOR, XEN_TTY_MINOR); } -static struct console xen_console_info = { - name: "xencons", /* Used to be xen_console, but we're only - actually allowed 8 charcters including - the terminator... */ - write: xen_console_write, - device: xen_console_device, - flags: CON_PRINTBUFFER, - index: -1, +static struct console kcons_info = { + name: "xencons", + write: kcons_write, + device: kcons_device, + flags: CON_PRINTBUFFER, + index: -1, }; void xen_console_init(void) { - register_console(&xen_console_info); + register_console(&kcons_info); } @@ -137,7 +135,7 @@ asmlinkage int xprintk(const char *fmt, ...) va_end(args); /* Send the processed output directly to Xen. */ - xen_console_write(NULL, printk_buf, printk_len); + kcons_write(NULL, printk_buf, printk_len); return 0; } diff --git a/xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c b/xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c new file mode 100644 index 0000000000..9c06dcdd89 --- /dev/null +++ b/xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c @@ -0,0 +1,18 @@ + +#include +#include + +static struct proc_dir_entry *xen_base; + +struct proc_dir_entry *create_xen_proc_entry(const char *name, mode_t mode) +{ + if ( xen_base == NULL ) + if ( (xen_base = proc_mkdir("xen", &proc_root)) == NULL ) + panic("Couldn't create /proc/xen"); + return create_proc_entry(name, mode, xen_base); +} + +void remove_xen_proc_entry(const char *name) +{ + remove_proc_entry(name, xen_base); +} diff --git a/xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c b/xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c deleted file mode 100644 index 9c06dcdd89..0000000000 --- a/xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c +++ /dev/null @@ -1,18 +0,0 @@ - -#include -#include - -static struct proc_dir_entry *xen_base; - -struct proc_dir_entry *create_xen_proc_entry(const char *name, mode_t mode) -{ - if ( xen_base == NULL ) - if ( (xen_base = proc_mkdir("xen", &proc_root)) == NULL ) - panic("Couldn't create /proc/xen"); - return create_proc_entry(name, mode, xen_base); -} - -void remove_xen_proc_entry(const char *name) -{ - remove_proc_entry(name, xen_base); -} diff --git a/xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h b/xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h new file mode 100644 index 0000000000..d62791e95c --- /dev/null +++ b/xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h @@ -0,0 +1,13 @@ + +#ifndef __ASM_XEN_PROC_H__ +#define __ASM_XEN_PROC_H__ + +#include +#include + +extern struct proc_dir_entry *create_xen_proc_entry( + const char *name, mode_t mode); +extern void remove_xen_proc_entry( + const char *name); + +#endif /* __ASM_XEN_PROC_H__ */ diff --git a/xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h b/xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h deleted file mode 100644 index d62791e95c..0000000000 --- a/xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h +++ /dev/null @@ -1,13 +0,0 @@ - -#ifndef __ASM_XEN_PROC_H__ -#define __ASM_XEN_PROC_H__ - -#include -#include - -extern struct proc_dir_entry *create_xen_proc_entry( - const char *name, mode_t mode); -extern void remove_xen_proc_entry( - const char *name); - -#endif /* __ASM_XEN_PROC_H__ */