Port-xen archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Dom0 PAE panic when starting xend
On Tue, Mar 10, 2009 at 05:59:47PM +0100, Christoph Egger wrote:
> >
> > [1] http://www.netbsd.org/~jym/xenevt.c.diff
>
> The output with this patch is:
>
> store_mfn: MFN 1050807 PFN 1431654400
> store_mfn: MFN 1050807 PFN 1431654400
> (XEN) mm.c:1784:d0 Error pfn 55555: rd=ff2b4100, od=00000000, caf=00000000,
> taf=00000000
> (XEN) mm.c:712:d0 Error getting mfn 55555 (pfn 55555555) from L1 entry
> 0000000055555067 for dom0
> xpq_flush_queue: 1 entries
> 0x000000010211d608: 0x0000000055555067
> panic: HYPERVISOR_mmu_update failed
Is it really called twice ? If so why is it working the first time and
not the second ?
I also notice 1431654400 is 0x55555000. Is it really what xenbus_probe_init()
did allocate ?
This one will overflow a << PAGE_SHIFT. Also xen_start_info.store_mfn is
32bit on i386 (even PAE) so we have to cast it before << PAGE_SHIFT.
Does the attached patch (in place or jym's one) help ?
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Index: arch/xen/xen/xenevt.c
===================================================================
RCS file: /pub/NetBSD-CVS/src/sys/arch/xen/xen/xenevt.c,v
retrieving revision 1.30
diff -u -u -r1.30 xenevt.c
--- arch/xen/xen/xenevt.c 17 Dec 2008 20:51:33 -0000 1.30
+++ arch/xen/xen/xenevt.c 10 Mar 2009 15:26:13 -0000
@@ -371,8 +371,12 @@
/* only one page, so off is always 0 */
if (off != 0)
return -1;
- return x86_btop(
- xpmap_mtop(xen_start_info.store_mfn << PAGE_SHIFT));
+
+ printf("store_mfn: MFN %llu PFN %llu\n",
+ (unsigned long long)xen_start_info.store_mfn,
+ xpmap_mtop(xen_start_info.store_mfn << PAGE_SHIFT));
+
+ return xpmap_mtop((paddr_t)xen_start_info.store_mfn <<
PAGE_SHIFT) >> PAGE_SHIFT;
}
#endif
return -1;
Home |
Main Index |
Thread Index |
Old Index