404507
From 92a9394006873d494610bad839255363c36e65c3 Mon Sep 17 00:00:00 2001
404507
Message-Id: <92a9394006873d494610bad839255363c36e65c3@dist-git>
404507
From: Michal Privoznik <mprivozn@redhat.com>
404507
Date: Mon, 4 Dec 2017 13:38:51 +0100
404507
Subject: [PATCH] qemu_capabilities: Introcude QEMU_CAPS_NUMA_DIST
404507
404507
https://bugzilla.redhat.com/show_bug.cgi?id=1454889
404507
404507
This capability says if qemu is capable of specifying distances
404507
between NUMA nodes on the command line. Unfortunately, there's no
404507
real way to check this and thus we have to go with version check.
404507
QEMU introduced this in 0f203430dd8 (and friend) which was
404507
released in 2.10.0.
404507
404507
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
404507
Reviewed-by: John Ferlan <jferlan@redhat.com>
404507
(cherry picked from commit 13e148ebda9ef0a064aa811aa14bcbb35c157ceb)
404507
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
404507
404507
 Conflicts:
404507
	src/qemu/qemu_capabilities.c
404507
	src/qemu/qemu_capabilities.h
404507
	tests/qemucapabilitiesdata/caps_2.10.0-gicv2.aarch64.xml
404507
	tests/qemucapabilitiesdata/caps_2.10.0-gicv3.aarch64.xml
404507
	tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
404507
	tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
404507
404507
        - Context as some capabilities are not backported.
404507
404507
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
404507
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
404507
---
404507
 src/qemu/qemu_capabilities.c                      | 6 +++++-
404507
 src/qemu/qemu_capabilities.h                      | 2 +-
404507
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml  | 1 +
404507
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml  | 1 +
404507
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
404507
 5 files changed, 9 insertions(+), 2 deletions(-)
404507
404507
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
404507
index ae5448eaaa..d1677144b7 100644
404507
--- a/src/qemu/qemu_capabilities.c
404507
+++ b/src/qemu/qemu_capabilities.c
404507
@@ -449,7 +449,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
404507
 
404507
               /* 275 */
404507
               "sclplmconsole",
404507
-
404507
+              "numa.dist",
404507
               "disk-share-rw",
404507
 
404507
               "isa-serial",
404507
@@ -4808,6 +4808,10 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
404507
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT);
404507
     }
404507
 
404507
+    /* no way to query for -numa dist */
404507
+    if (qemuCaps->version >= 2010000)
404507
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_NUMA_DIST);
404507
+
404507
     if (virQEMUCapsProbeQMPCommands(qemuCaps, mon) < 0)
404507
         goto cleanup;
404507
 
404507
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
404507
index c809f83404..3e016b7c79 100644
404507
--- a/src/qemu/qemu_capabilities.h
404507
+++ b/src/qemu/qemu_capabilities.h
404507
@@ -435,7 +435,7 @@ typedef enum {
404507
 
404507
     /* 275 */
404507
     QEMU_CAPS_DEVICE_SCLPLMCONSOLE, /* -device sclplmconsole */
404507
-
404507
+    QEMU_CAPS_NUMA_DIST, /* -numa dist */
404507
     QEMU_CAPS_DISK_SHARE_RW, /* share-rw=on for concurrent disk access */
404507
 
404507
     QEMU_CAPS_DEVICE_ISA_SERIAL, /* -device isa-serial */
404507
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
404507
index 23356f4092..09cce92067 100644
404507
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
404507
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
404507
@@ -179,6 +179,7 @@
404507
   <flag name='virtio-blk.num-queues'/>
404507
   <flag name='machine.pseries.resize-hpt'/>
404507
   <flag name='spapr-vty'/>
404507
+  <flag name='numa.dist'/>
404507
   <flag name='disk-share-rw'/>
404507
   <flag name='isa-serial'/>
404507
   <version>2010000</version>
404507
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
404507
index 463c30c77a..00fe1cffa7 100644
404507
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
404507
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
404507
@@ -142,6 +142,7 @@
404507
   <flag name='vxhs'/>
404507
   <flag name='virtio-blk.num-queues'/>
404507
   <flag name='sclplmconsole'/>
404507
+  <flag name='numa.dist'/>
404507
   <flag name='disk-share-rw'/>
404507
   <version>2010000</version>
404507
   <kvmVersion>0</kvmVersion>
404507
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
404507
index e04e530b95..2417251678 100644
404507
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
404507
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
404507
@@ -224,6 +224,7 @@
404507
   <flag name='virtio-gpu.max_outputs'/>
404507
   <flag name='vxhs'/>
404507
   <flag name='virtio-blk.num-queues'/>
404507
+  <flag name='numa.dist'/>
404507
   <flag name='disk-share-rw'/>
404507
   <flag name='isa-serial'/>
404507
   <version>2010000</version>
404507
-- 
404507
2.15.1
404507