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

Re: [Xen-devel] [PATCH v4 8/8] libxl, hvmloader: Don't relocate memory for MMIO hole



On Wed, 26 Jun 2013, Hao, Xudong wrote:
> > -----Original Message-----
> > From: Stefano Stabellini [mailto:stefano.stabellini@xxxxxxxxxxxxx]
> > Sent: Wednesday, June 26, 2013 9:36 PM
> > To: Hao, Xudong
> > Cc: George Dunlap; xen-devel@xxxxxxxxxxxxx; Keir Fraser; Ian Campbell;
> > Hanweidong; Stefano Stabellini; Ian Jackson
> > Subject: RE: [Xen-devel] [PATCH v4 8/8] libxl, hvmloader: Don't relocate 
> > memory
> > for MMIO hole
> > 
> > On Wed, 26 Jun 2013, Hao, Xudong wrote:
> > > > -----Original Message-----
> > > > From: xen-devel-bounces@xxxxxxxxxxxxx
> > > > [mailto:xen-devel-bounces@xxxxxxxxxxxxx] On Behalf Of George Dunlap
> > > > Sent: Friday, June 21, 2013 6:47 PM
> > > > To: xen-devel@xxxxxxxxxxxxx
> > > > Cc: Keir Fraser; Ian Campbell; Hanweidong; George Dunlap; Stefano
> > Stabellini;
> > > > Ian Jackson
> > > > Subject: [Xen-devel] [PATCH v4 8/8] libxl, hvmloader: Don't relocate 
> > > > memory
> > for
> > > > MMIO hole
> > > >
> > > > At the moment, qemu-xen can't handle memory being relocated by
> > > > hvmloader.  This may happen if a device with a large enough memory
> > > > region is passed through to the guest.  At the moment, if this
> > > > happens, then at some point in the future qemu will crash and the
> > > > domain will hang.  (qemu-traditional is fine.)
> > > >
> > > > It's too late in the release to do a proper fix, so we try to do
> > > > damage control.
> > > >
> > > > hvmloader already has mechanisms to relocate memory to 64-bit space if
> > > > it can't make a big enough MMIO hole.  By default this is 2GiB; if we
> > > > just refuse to make the hole bigger if it will overlap with guest
> > > > memory, then the relocation will happen by default.
> > > >
> > >
> > > For qemu-xen use case, hvmloader start MMIO hole at 0xf0000000. However,
> > qemu-xen initialize ram region to 0xf0000000(HVM_BELOW_4G_RAM_END)
> > below 4G, and pci hole starting from 0xe0000000, is it overlap?
> > 
> > hvmloader configures the MMIO hole to start at 0xf0000000, qemu-xen
> > configures the below_4g_mem_size ram region to *end* at 0xf0000000 and
> 
> That's right.
> 
> > the pci hole to start from 0xf0000000. It's all coherent now.
> > 
> 
> Current qemu upstream configure pci hole as below, do I miss something?
> 
>     if (ram_size >= 0xe0000000 ) {
>         above_4g_mem_size = ram_size - 0xe0000000;
>         below_4g_mem_size = 0xe0000000;
>     } else {
>         above_4g_mem_size = 0;
>         below_4g_mem_size = ram_size;
>     }

That's the non-Xen case.
Give a look at xen-all.c:xen_ram_init:

    if (ram_size >= HVM_BELOW_4G_RAM_END) {
        above_4g_mem_size = ram_size - HVM_BELOW_4G_RAM_END;
        below_4g_mem_size = HVM_BELOW_4G_RAM_END;
    } else {
        below_4g_mem_size = ram_size;
    }


_______________________________________________
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®.