mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
88198ec1b0bd2094cbabd600baae1ebe3026e7ad
Subject: PAE support This patch adds initial support for PAE paging to xen. This patch does: * boot Xen itself with PAE paging enabled. * add PAE support to the dom0 domain builder. Some notes on the design and the changes: * There are two new config options: CONFIG_X86_PAE (boolean, same name Linux uses to simply things) and CONFIG_PAGING_LEVELS (int, possible values are 2,3,4). I've used #if CONFIG_PAGING_LEVELS for stuff which simply depends on the number of paging levels in the code common for x86-32/64, and CONFIG_X86_PAE for special PAE quirks or i386-only stuff. I've tried to avoid ifdefs if possible though, often I rearranged code to make it work in both PAE and non-PAE case instead. * idle_pg_table: 3rd level is statically initialized, 2nd level is contignous in physical and virtual memory, so it can be addressed linear (the dom0 builder uses the same trick to simplify things a bit btw.). There are two new symbols: idle_pg_table_l3 and idle_pg_table_l2 for the two tables. idle_pg_table is aliased to the toplevel page table, i.e. idle_pg_table_l3 in PAE mode and idle_pg_table_l2 in non-pae mode. The idle l3 table is actually never ever touched after boot, the l2 table is accessed via idle_pg_table_l2 and addressed linear in both PAE and non-PAE mode. * I've added a "intpte_t" type and a PRIpte define, modeled after the C99 inttypes.h header, for page table entries. Signed-off-by: Gerd Knorr <kraxel@bytesex.org>
###############################
__ __ ____ ___
\ \/ /___ _ __ |___ \ / _ \
\ // _ \ '_ \ __) || | | |
/ \ __/ | | | / __/ | |_| |
/_/\_\___|_| |_| |_____(_)___/
###############################
University of Cambridge Computer Laboratory
3 November 2004
http://www.cl.cam.ac.uk/netos/xen/
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.
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
# kernel /boot/xen-2.0.gz dom0_mem=<mem-kb> console=vga
# module /boot/vmlinuz-2.6-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" 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)
[NB. Unless noted otherwise, all the following steps should be
performed with root privileges.]
Description
No description provided
173 MiB
0 Stars
1 Watchers
1 Forks
Languages
C
91.8%
Python
1.7%
Assembly
1.7%
Makefile
1.1%
Shell
1%
Other
2.4%