Signed-off-by: Wei Liu <wei.l...@citrix.com>
Cc: Jan Beulich <jbeul...@suse.com>
Cc: George Dunlap <george.dun...@eu.citrix.com>
---
 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.
+     */
+    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@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to