[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] qemu-xen-dir + PCI passthrough = BOOM



On Fri, Dec 06, 2013 at 03:35:04PM +0000, Anthony PERARD wrote:
> On Fri, Dec 06, 2013 at 09:49:36AM -0500, Konrad Rzeszutek Wilk wrote:
> > On Thu, Dec 05, 2013 at 12:16:32PM +0000, Anthony PERARD wrote:
> > > On Wed, Dec 04, 2013 at 02:51:48PM -0500, Konrad Rzeszutek Wilk wrote:
> > > > Hey,
> > > > 
> > > > I just started noticing it today - with qemu-xen (tip is
> > > > commit b97307ecaad98360f41ea36cd9674ef810c4f8cf
> > > >     xen_disk: mark ioreq as mapped before unmapping in error case)
> > > > 
> > > > when I try to pass in a PCI device at bootup it blows up with:
> > > > 
> > > > char device redirected to /dev/pts/2 (label serial0)
> > > > qemu: hardware error: xen: failed to populate ram at 40050000
> > > 
> > > There is a good chance that the issue is in QEMU.
> > > 
> > > By default, qemu-xen is not very verbose, so a
> > > #define XEN_PT_LOGGING_ENABLED
> > > can help identifying what is missing.
> > > 
> > > The error is reported by xen_ram_alloc(), so it might help to enable
> > > trace for it. It's easy:
> > > sh$ cat > /tmp/trace-to-enable << EOF
> > > xen_ram_alloc
> > > EOF
> > > 
> > > then
> > > device_model_args_hvm = [ '-trace', 'events=/tmp/trace-to-enable' ]
> > > 
> > > There is more of those trace events in qemu.git/trace-events
> > 
> > char device redirected to /dev/pts/2 (label serial0)
> > xen_ram_alloc requested: 0x3f800000, size 0x800000
> > xen_ram_alloc requested: 0x40000000, size 0x10000
> > xen_ram_alloc requested: 0x40010000, size 0x40000
> > [00:05.0] xen_pt_initfn: Assigning real physical device 01:00.0 to devfn
> > 0x28
> > [00:05.0] xen_pt_register_regions: IO region 0 registered
> > (size=0x20000lx base_addr=0xfbc20000lx type: 0)
> > [00:05.0] xen_pt_register_regions: IO region 1 registered
> > (size=0x400000lx base_addr=0xfb800000lx type: 0)
> > [00:05.0] xen_pt_register_regions: IO region 2 registered (size=0x20lx
> > base_addr=0xe020lx type: 0x1)
> > [00:05.0] xen_pt_register_regions: IO region 3 registered (size=0x4000lx
> > base_addr=0xfbc44000lx type: 0)
> > xen_ram_alloc requested: 0x40050000, size 0x400000
> > qemu: hardware error: xen: failed to populate ram at 40050000
> 
> Those Xen report something like:
> (XEN) page_alloc.c:1460:d0 Over-allocation for domain 46: 131329 >
> 131328
> (XEN) memory.c:132:d0 Could not allocate order=0 extent: id=46
> memflags=0 (62 of 64)
> 
> ?
> 
> (I tryied to reproduce the issue by simply add many emulated e1000 in
> QEMU :) )
> 

FWIW this probably comes from XENMEM_populate_physmap. Simply speaking
your domain is exceeding memory limit...

Wei.

> -- 
> Anthony PERARD
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.