[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 |