Non-PAE operation has been deprecated in Xen for a while, and is
rarely tested or used. xen-unstable has now officially dropped
non-PAE support. Since Xen/pvops' non-PAE support has also been
broken for a while, we may as well completely drop it altogether.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
arch/x86/xen/Kconfig | 2 -
arch/x86/xen/enlighten.c | 51 +++++++++++++++-----------------------------
arch/x86/xen/mmu.c | 19 +---------------
arch/x86/xen/mmu.h | 24 +++++---------------
arch/x86/xen/xen-head.S | 4 ---
include/asm-x86/xen/page.h | 4 ---
6 files changed, 27 insertions(+), 77 deletions(-)
===================================================================
--- a/arch/x86/xen/Kconfig
+++ b/arch/x86/xen/Kconfig
@@ -6,7 +6,7 @@
bool "Xen guest support"
select PARAVIRT
depends on X86_32
- depends on X86_CMPXCHG && X86_TSC && !(X86_VISWS || X86_VOYAGER)
+ depends on X86_CMPXCHG && X86_TSC && X86_PAE && !(X86_VISWS || X86_VOYAGER)
help
This is the Linux Xen port. Enabling this will allow the
kernel to boot in a paravirtualized environment under the
===================================================================
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -811,38 +811,35 @@
static __init void xen_pagetable_setup_start(pgd_t *base)
{
pgd_t *xen_pgd = (pgd_t *)xen_start_info->pt_base;
+ int i;
/* special set_pte for pagetable initialization */
pv_mmu_ops.set_pte = xen_set_pte_init;
init_mm.pgd = base;
/*
- * copy top-level of Xen-supplied pagetable into place. For
- * !PAE we can use this as-is, but for PAE it is a stand-in
- * while we copy the pmd pages.
+ * copy top-level of Xen-supplied pagetable into place. This
+ * is a stand-in while we copy the pmd pages.
*/
memcpy(base, xen_pgd, PTRS_PER_PGD * sizeof(pgd_t));
- if (PTRS_PER_PMD > 1) {
- int i;
- /*
- * For PAE, need to allocate new pmds, ...Hi, Hmm, I had to revert to non-PAE operation (using xen 3.2.1) recently in order to get Xen to run under qemu. Does anyone know of another work-around to run Xen/Linux under qemu? Rob -- Robert Kaiser http://wwwvs.informatik.fh-wiesbaden.de Labor für Verteilte Systeme kaiser@informatik.fh-wiesbaden.de FH Wiesbaden - University of Applied Sciences tel: (+49)611-9495-294 Kurt-Schumacher-Ring 18, 65197 Wiesbaden, Germany fax: (+49)611-9495-294 --
In principle it should work in PAE mode; it certainly works in kvm.
What problem are you seeing? I think there's a bug in qemu's x86
emulation with respect to mis-reporting the eip of an xchg which faults,
which may be what you're seeing.
J
--
Linux crashes just after the message "Freeing unused kernel memory: ..." due to dereferencing a bad address. The following is from the top of my head (if you need more details, let me kow and I'll recompile everything with PAE so I can reproduce the problem again -- this will take some time though..): The crash results from a call to do_munmap(). Strangely though, when setting a breakpoint at the faulting assembly instruction (I'm using qemu's debug stub facility) , the problem disappears: the address being dereferenced (contained in register eax) is always a valid one. However, as soon as I remove that breakpoint and hit "continue", it does crash again with the crash dump showing an eip pointing to where the breakpoint formerly was, and an invalid The eip that was reported was always the same, and there was no xchg instruction at that address. It might have been consistently wrong though (how would I figure this out?). Rob -- Robert Kaiser http://wwwvs.informatik.fh-wiesbaden.de Labor für Verteilte Systeme kaiser@informatik.fh-wiesbaden.de FH Wiesbaden - University of Applied Sciences tel: (+49)611-9495-294 Kurt-Schumacher-Ring 18, 65197 Wiesbaden, Germany fax: (+49)611-9495-294 --
The symptom I've observed is that qemu reports the first instruction of
the basic block rather than the exchange itself. If you "x/10i <fault
eip>", you should see an xchg before long.
Either way, sounds like a qemu bug which should be reported to them.
J
--
On 13/5/08 12:32, "Robert Kaiser (FH)" <kaiser@informatik.fh-wiesbaden.de> How does it fail? The underlying issue ought to get fixed. -- Keir --
