|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 14/19] hvmloader: disallow memory relocation when vNUMA is enabled
On Fri, Nov 21, 2014 at 02:56:31PM -0500, Konrad Rzeszutek Wilk wrote:
> On Fri, Nov 21, 2014 at 03:06:56PM +0000, Wei Liu wrote:
> > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> > Cc: Jan Beulich <JBeulich@xxxxxxxx>
> > Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> > ---
> > tools/firmware/hvmloader/pci.c | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
> > index 4e8d803..d7ea740 100644
> > --- a/tools/firmware/hvmloader/pci.c
> > +++ b/tools/firmware/hvmloader/pci.c
> > @@ -88,6 +88,19 @@ void pci_setup(void)
> > printf("Relocating guest memory for lowmem MMIO space %s\n",
> > allow_memory_relocate?"enabled":"disabled");
> >
> > + /* Disallow low memory relocation when vNUMA is enabled, because
> > + * relocated memory ends up off node. Further more, even if we
> > + * dynamically expand node coverage in hvmloader, low memory and
> > + * high memory may reside in different physical nodes, blindly
> > + * relocates low memory to high memory gives us a sub-optimal
> > + * configuration.
>
> And this is done in hvmloader, so the toolstack has no inkling that
> we need to relocate memory to make space for the PCI.
>
> In such case I would not have this check here. Instead put it in
> libxl
You're right, I think this should be placed in libxl.
> and disallow vNUMA with PCI passthrough.
>
> And then the fix is to take the logic that is in hvmloader for PCI
> BAR size relocation and move it in libxl. Then it can construct the
> proper vNUMA topology and also fix an outstanding QEMU-xen bug.
>
But FYI not only PCI passthrough requires larger memory hole. A user can
use device_model_args_extra (don't remember the exact name) to
instrument QEMU to emulate arbitrary PCI devices.
Wei.
> > + */
> > + if ( hvm_info->nr_nodes != 0 && allow_memory_relocate )
> > + {
> > + allow_memory_relocate = false;
> > + printf("vNUMA enabled, relocating guest memory for lowmem MMIO
> > space disabled\n");
> > + }
> > +
> > s = xenstore_read("platform/mmio_hole_size", NULL);
> > if ( s )
> > mmio_hole_size = strtoll(s, NULL, 0);
> > --
> > 1.7.10.4
> >
> >
> > _______________________________________________
> > 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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |