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>
XendDomainInfo.py:
g/c vif_up: it's the guest's responsibility to take appropriate
actions to get its network working again, i.e. send ARP packets when
it's resumed.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
XendRoot.py:
Document loglevel_default and change default interface address for
listening at for console connections.
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
vnet-xend.txt, user.tex, README:
Update the Linux kernel version number from 2.6.9 to 2.6 or 2.6.11
in several places in documentation.
Original patch provided by Andrew Thompson <andrewkt@aktzero.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
XendProtocol.py:
Make XendProtocol.py use XendRoot to get the path to xend
domain-socket.
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
XendRoot.py:
XendRoot::logDebug wrongly set the message format to 'info', instead
of 'debug'.
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Fix CPU detection and initialisation. We now do early detection very
early, but pushed full initialisation to somewhat later when other
infrastructure is properly ready.
Signed-off-by: Keir Fraser <keir@xensource.com>
Solve badness problem when udp_poll() receives fragmented skbuff w/ CONFIG_HIGHMEM
Upstream patch (now in -net tree) from Herbert Xu.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Steven Hand <steven@xensource.com>
By default do not enable local APIC if disabled by the BIOS. This
matches Linux behaviour and ought to improve stability on buggy
hardware/firmware (laptops in particular). As in Linux, you can
forcibly enable the APIC with 'lapic' command-line option, or
forcibly ignore it with 'nolapic'.
Signed-off-by: Keir Fraser <keir@xensource.com>
Better locking strategy in serial rx interrupt handler and getc. Release
the spinlock after each loop iteration to prevent starvation of other
cpus and of interrupt handling. Also neatly folds byte_matches() into
serial_getc().
Signed-off-by: Keir Fraser <keir@xensource.com>
Fix Xen idle loop to enter/exit tickless mode in same way as s390,
which interfaces properly with the RCU subsystem.
This includes a patch that fixes a race in the generic RCU code: it
was created by IBM for s390, and is being pushed upstream by them.
Signed-off-by: Keir Fraser <keir@xensource.com>
Bit-scanning function take offset/size as an int, not a long, and
return an int. This allows some small optimisation in code produced
for x86/64.
Signed-off-by: Keir Fraser <keir@xensource.com>
Tidy up and fix the bit-scanning operations. In particular,
find_{first,next}_[zero_]bit(addr, max) may return any value >= max
if no suitable bit is found. This is now also the case for first_cpu()
and next_cpu() (unlike Linux!). I don't believe that any callers
care -- they always check for >= NR_CPUS, and I fixed any_online_cpu()
separately. This reduces code size and will improve performance.
Signed-off-by: Keir Fraser <keir@xensource.com>
[PATCH] [PATCH] VMX world switch does not handle all cases
The latest world switch modification does not handle all cases. Specifically,
when a partition enables CR0.PG|CR0.PE and performs a world switch at the
the same time. The patch below handles this case.
Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>
Assembly code cleanups. gcc doesn't need very many hints to get the
operand size and register names correct for both x86/32 and x86/64.
Signed-off-by: Keir Fraser <keir@xensource.com>
This patch should make x86-64 XenLinux more stable. Please apply.
# Cleanups and improving stability by avoiding complex fixup at
critical section.
# Also fix error_entry with error set.
# Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
# Signed-off-by: Li B Xin <li.b.xin@intel.com>
I think the other was dropped (i.e. not applied in BK):
pfn_pte_ma.patch. Please apply it as well.
[PATCH] [PATCH] ioemu: enable Cirrus VGA emulation
At some point the Cirrus VGA driver was commented out. Probably
for debugging. The patch below adds it back in. It works just fine.
Signed-Off-By: Leendert van Doorn <leendert@watson.ibm.com>