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 Tuesday 10 March 2009 16:30:13 Jean-Yves Migeon wrote:
> Christoph Egger wrote:
>  > PFN 55555 is obviously bogus. It gets used as poison in
>
> machine-to-phys and
>
>  > phys-to-machine tables in some cases. domain->interface should have been
>  > mapped at setup time by a call to xc_map_foreign_range() in
>  > xenstored_domain.c:do_introduce(). An attempt to demand-map the
>  > interface page probably means something went wrong earlier.
>
> Hmm, if this problem happens while there is no domain running (except
> dom0), I am not sure that the xc_map_foreign_range() code is at fault.
>
> I am more inclined to say that the mmap() code used to map the initial
> xen_start_info of dom0 (through /dev/xsd_kva) is doing something wrong
> (see dom0_init() with the call to xenbus_map()). This part is skipped
> when you start xenstored with -D, which looks plausible to me.
>
> However, I can't manage to reproduce that issue with dom0 PAE and Xen3.3.
>
> Reading xsd_kva code around its mmap routine (xenevtmmap() in
> arch/xen/xen/xenevt.c), it is using x86_btop which casts away to
> unsigned long, which could be wrong with PAE (paddr_t being unsigned
> long long).
>
> Could you give [1] a try (ugly, but I'd like to check that first)
>
> Thanks,
>
> [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
fatal breakpoint trap in supervisor mode
trap type 1 code 0 eip c02125b4 cs 9 eflags 246 cr2 bb6c1800 ilevel 6
Stopped in pid 325.1 (xenstored) at     netbsd:breakpoint+0x4:  popl    %ebp
db> bt
breakpoint(c099985a,cdbfd988,c09b8180,c05fe07b,c09a0511,5,0,0,cdbfd998,ffffffea)
 at netbsd:breakpoint+0x4
panic(c09a0527,211d608,1,55555067,0,cdbfd9ac,0,c07361da,cdded2d0,cdb6adc4) at 
netbsd:panic+0x1a4
xpq_update_foreign(211d608,1,55555067,0,cdb6adc6,c0431f50,0,cddf1d10,cddf1d10,cd
b6adbc) at netbsd:xpq_update_foreign
pmap_enter_ma(cda80a2c,bb6c1000,55555000,0,55555000,0,3,23,7ff0,3) at 
netbsd:pmap_enter_ma+0x580
pmap_enter(cda80a2c,bb6c1000,55555000,0,3,23,cdf71950,0,c16d11c0,bb6c1000) at 
netbsd:pmap_enter+0xd3
udv_fault(cdbfdc70,bb6c1000,cdbfdc30,1,0,1,5,ffffffff,c06fc25b,0) at 
netbsd:udv_fault+0x491
uvm_fault_internal(ca89f680,bb6c1000,1,0,0,0,0,cda935e0,0,c09f90f0) at 
netbsd:uvm_fault_internal+0x8e5
trap() at netbsd:trap+0x6e0
--- trap (number 6) ---
0x804d53a:
db> 



Home | Main Index | Thread Index | Old Index