[libvirt] [PATCH 3/3] qemu: fix default machine for argv -> xml convertor

Daniel P. Berrangé berrange at redhat.com
Thu Aug 16 15:12:27 UTC 2018


Historically the argv -> xml convertor wanted the same default machine
as we'd set when parsing xml. The latter has now changed, however, to
use a default defined by libvirt. The former needs fixing to again
honour the default QEMU machine.

This exposed a bug in handling for the aarch64 target, as QEMU does not
define any default machine. Thus we should not having been accepting
argv without a -machine provided.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 src/qemu/qemu_capabilities.c                  | 17 +++++++-
 src/qemu/qemu_capabilities.h                  |  1 +
 src/qemu/qemu_driver.c                        |  6 ++-
 src/qemu/qemu_parse_command.c                 | 34 ++++++++++------
 src/qemu/qemu_parse_command.h                 |  8 +++-
 tests/qemuargv2xmldata/nomachine-aarch64.args | 11 -----
 tests/qemuargv2xmldata/nomachine-aarch64.xml  | 40 -------------------
 tests/qemuargv2xmldata/nomachine-ppc64.xml    |  4 +-
 tests/qemuargv2xmldata/nomachine-x86_64.xml   |  4 +-
 tests/qemuargv2xmldata/pseries-disk.xml       |  4 +-
 tests/qemuargv2xmldata/pseries-nvram.xml      |  4 +-
 tests/qemuargv2xmltest.c                      | 18 ++++++++-
 .../caps_1.5.3.x86_64.xml                     |  2 +-
 .../caps_1.6.0.x86_64.xml                     |  2 +-
 .../caps_1.7.0.x86_64.xml                     |  2 +-
 .../caps_2.1.1.x86_64.xml                     |  2 +-
 .../caps_2.10.0.ppc64.xml                     |  2 +-
 .../caps_2.10.0.s390x.xml                     |  2 +-
 .../caps_2.10.0.x86_64.xml                    |  2 +-
 .../caps_2.11.0.s390x.xml                     |  2 +-
 .../caps_2.11.0.x86_64.xml                    |  2 +-
 .../caps_2.12.0.ppc64.xml                     |  2 +-
 .../caps_2.12.0.s390x.xml                     |  2 +-
 .../caps_2.12.0.x86_64.xml                    |  2 +-
 .../caps_2.4.0.x86_64.xml                     |  2 +-
 .../caps_2.5.0.x86_64.xml                     |  2 +-
 .../qemucapabilitiesdata/caps_2.6.0.ppc64.xml |  2 +-
 .../caps_2.6.0.x86_64.xml                     |  2 +-
 .../qemucapabilitiesdata/caps_2.7.0.s390x.xml |  2 +-
 .../caps_2.7.0.x86_64.xml                     |  2 +-
 .../qemucapabilitiesdata/caps_2.8.0.s390x.xml |  2 +-
 .../caps_2.8.0.x86_64.xml                     |  2 +-
 .../qemucapabilitiesdata/caps_2.9.0.ppc64.xml |  2 +-
 .../qemucapabilitiesdata/caps_2.9.0.s390x.xml |  2 +-
 .../caps_2.9.0.x86_64.xml                     |  2 +-
 .../qemucapabilitiesdata/caps_3.0.0.ppc64.xml |  2 +-
 .../caps_3.0.0.x86_64.xml                     |  2 +-
 37 files changed, 97 insertions(+), 104 deletions(-)
 delete mode 100644 tests/qemuargv2xmldata/nomachine-aarch64.args
 delete mode 100644 tests/qemuargv2xmldata/nomachine-aarch64.xml

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 4e4f732889..72b550ae16 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1625,6 +1625,7 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
             goto error;
         ret->machineTypes[i].maxCpus = qemuCaps->machineTypes[i].maxCpus;
         ret->machineTypes[i].hotplugCpus = qemuCaps->machineTypes[i].hotplugCpus;
+        ret->machineTypes[i].qemuDefault = qemuCaps->machineTypes[i].qemuDefault;
     }
 
     if (VIR_ALLOC_N(ret->gicCapabilities, qemuCaps->ngicCapabilities) < 0)
@@ -2042,6 +2043,17 @@ const char *virQEMUCapsGetCanonicalMachine(virQEMUCapsPtr qemuCaps,
     return name;
 }
 
+const char *virQEMUCapsGetDefaultMachine(virQEMUCapsPtr qemuCaps)
+{
+    size_t i;
+
+    for (i = 0; i < qemuCaps->nmachineTypes; i++) {
+        if (qemuCaps->machineTypes[i].qemuDefault)
+            return qemuCaps->machineTypes[i].name;
+    }
+
+    return NULL;
+}
 
 int virQEMUCapsGetMachineMaxCpus(virQEMUCapsPtr qemuCaps,
                                  const char *name)
@@ -3776,10 +3788,11 @@ virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps)
                               qemuCaps->machineTypes[i].alias);
         if (qemuCaps->machineTypes[i].hotplugCpus)
             virBufferAddLit(&buf, " hotplugCpus='yes'");
+        virBufferAsprintf(&buf, " maxCpus='%u'",
+                          qemuCaps->machineTypes[i].maxCpus);
         if (qemuCaps->machineTypes[i].qemuDefault)
             virBufferAddLit(&buf, " default='yes'");
-        virBufferAsprintf(&buf, " maxCpus='%u'/>\n",
-                          qemuCaps->machineTypes[i].maxCpus);
+        virBufferAddLit(&buf, "/>\n");
     }
 
     for (i = 0; i < qemuCaps->ngicCapabilities; i++) {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 88e81be09b..a410885215 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -558,6 +558,7 @@ bool virQEMUCapsIsCPUModeSupported(virQEMUCapsPtr qemuCaps,
                                    virCPUMode mode);
 const char *virQEMUCapsGetCanonicalMachine(virQEMUCapsPtr qemuCaps,
                                            const char *name);
+const char *virQEMUCapsGetDefaultMachine(virQEMUCapsPtr qemuCaps);
 int virQEMUCapsGetMachineMaxCpus(virQEMUCapsPtr qemuCaps,
                                  const char *name);
 bool virQEMUCapsGetMachineHotplugCpus(virQEMUCapsPtr qemuCaps,
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d4a2379e48..75eadbba56 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7103,7 +7103,8 @@ static char *qemuConnectDomainXMLFromNative(virConnectPtr conn,
     if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
         goto cleanup;
 
-    def = qemuParseCommandLineString(caps, driver->xmlopt, config,
+    def = qemuParseCommandLineString(driver->qemuCapsCache,
+                                     caps, driver->xmlopt, config,
                                      NULL, NULL, NULL);
     if (!def)
         goto cleanup;
@@ -16581,7 +16582,8 @@ static virDomainPtr qemuDomainQemuAttach(virConnectPtr conn,
     if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
         goto cleanup;
 
-    if (!(def = qemuParseCommandLinePid(caps, driver->xmlopt, pid,
+    if (!(def = qemuParseCommandLinePid(driver->qemuCapsCache,
+                                        caps, driver->xmlopt, pid,
                                         &pidfile, &monConfig, &monJSON)))
         goto cleanup;
 
diff --git a/src/qemu/qemu_parse_command.c b/src/qemu/qemu_parse_command.c
index 351425fedd..b66c1c3d03 100644
--- a/src/qemu/qemu_parse_command.c
+++ b/src/qemu/qemu_parse_command.c
@@ -1826,7 +1826,8 @@ qemuParseCommandLineBootDevs(virDomainDefPtr def, const char *str)
  * as is practical. This is not an exact science....
  */
 static virDomainDefPtr
-qemuParseCommandLine(virCapsPtr caps,
+qemuParseCommandLine(virFileCachePtr capsCache,
+                     virCapsPtr caps,
                      virDomainXMLOptionPtr xmlopt,
                      char **progenv,
                      char **progargv,
@@ -1848,6 +1849,7 @@ qemuParseCommandLine(virCapsPtr caps,
     virDomainDiskDefPtr disk = NULL;
     const char *ceph_args = qemuFindEnv(progenv, "CEPH_ARGS");
     bool have_sdl = false;
+    virQEMUCapsPtr qemuCaps;
 
     if (pidfile)
         *pidfile = NULL;
@@ -1862,6 +1864,9 @@ qemuParseCommandLine(virCapsPtr caps,
         return NULL;
     }
 
+    if (!(qemuCaps = virQEMUCapsCacheLookup(capsCache, progargv[0])))
+        goto error;
+
     if (!(def = virDomainDefNew()))
         goto error;
 
@@ -2014,17 +2019,18 @@ qemuParseCommandLine(virCapsPtr caps,
     /* If no machine type has been found among the arguments, then figure
      * out a reasonable value by using capabilities */
     if (!def->os.machine) {
-        virCapsDomainDataPtr capsdata;
+        const char *mach = virQEMUCapsGetDefaultMachine(qemuCaps);
 
-        if (!(capsdata = virCapabilitiesDomainDataLookup(caps, def->os.type,
-                def->os.arch, def->virtType, NULL, NULL)))
+        if (!mach) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("Binary '%s' does not have a default machine type "
+                             "and no '-machine' arg is present"),
+                           progargv[0]);
             goto error;
+        }
 
-        if (VIR_STRDUP(def->os.machine, capsdata->machinetype) < 0) {
-            VIR_FREE(capsdata);
+        if (VIR_STRDUP(def->os.machine, mach) < 0)
             goto error;
-        }
-        VIR_FREE(capsdata);
     }
 
     /* Now the real processing loop */
@@ -2715,6 +2721,7 @@ qemuParseCommandLine(virCapsPtr caps,
     else
         qemuDomainCmdlineDefFree(cmd);
 
+    virObjectUnref(qemuCaps);
     return def;
 
  error:
@@ -2729,11 +2736,13 @@ qemuParseCommandLine(virCapsPtr caps,
     }
     if (pidfile)
         VIR_FREE(*pidfile);
+    virObjectUnref(qemuCaps);
     return NULL;
 }
 
 
-virDomainDefPtr qemuParseCommandLineString(virCapsPtr caps,
+virDomainDefPtr qemuParseCommandLineString(virFileCachePtr capsCache,
+                                           virCapsPtr caps,
                                            virDomainXMLOptionPtr xmlopt,
                                            const char *args,
                                            char **pidfile,
@@ -2747,7 +2756,7 @@ virDomainDefPtr qemuParseCommandLineString(virCapsPtr caps,
     if (qemuStringToArgvEnv(args, &progenv, &progargv) < 0)
         goto cleanup;
 
-    def = qemuParseCommandLine(caps, xmlopt, progenv, progargv,
+    def = qemuParseCommandLine(capsCache, caps, xmlopt, progenv, progargv,
                                pidfile, monConfig, monJSON);
 
  cleanup:
@@ -2805,7 +2814,8 @@ static int qemuParseProcFileStrings(int pid_value,
     return ret;
 }
 
-virDomainDefPtr qemuParseCommandLinePid(virCapsPtr caps,
+virDomainDefPtr qemuParseCommandLinePid(virFileCachePtr capsCache,
+                                        virCapsPtr caps,
                                         virDomainXMLOptionPtr xmlopt,
                                         pid_t pid,
                                         char **pidfile,
@@ -2825,7 +2835,7 @@ virDomainDefPtr qemuParseCommandLinePid(virCapsPtr caps,
         qemuParseProcFileStrings(pid, "environ", &progenv) < 0)
         goto cleanup;
 
-    if (!(def = qemuParseCommandLine(caps, xmlopt, progenv, progargv,
+    if (!(def = qemuParseCommandLine(capsCache, caps, xmlopt, progenv, progargv,
                                      pidfile, monConfig, monJSON)))
         goto cleanup;
 
diff --git a/src/qemu/qemu_parse_command.h b/src/qemu/qemu_parse_command.h
index b3a950a420..a4db1a50ca 100644
--- a/src/qemu/qemu_parse_command.h
+++ b/src/qemu/qemu_parse_command.h
@@ -24,19 +24,23 @@
 #ifndef __QEMU_PARSE_COMMAND_H__
 # define __QEMU_PARSE_COMMAND_H__
 
+# include "virfilecache.h"
+
 # define QEMU_QXL_VGAMEM_DEFAULT 16 * 1024
 
 /*
  * NB: def->name can be NULL upon return and the caller
  * *must* decide how to fill in a name in this case
  */
-virDomainDefPtr qemuParseCommandLineString(virCapsPtr caps,
+virDomainDefPtr qemuParseCommandLineString(virFileCachePtr capsCache,
+                                           virCapsPtr caps,
                                            virDomainXMLOptionPtr xmlopt,
                                            const char *args,
                                            char **pidfile,
                                            virDomainChrSourceDefPtr *monConfig,
                                            bool *monJSON);
-virDomainDefPtr qemuParseCommandLinePid(virCapsPtr caps,
+virDomainDefPtr qemuParseCommandLinePid(virFileCachePtr capsCache,
+                                        virCapsPtr caps,
                                         virDomainXMLOptionPtr xmlopt,
                                         pid_t pid,
                                         char **pidfile,
diff --git a/tests/qemuargv2xmldata/nomachine-aarch64.args b/tests/qemuargv2xmldata/nomachine-aarch64.args
deleted file mode 100644
index b17c0d0c23..0000000000
--- a/tests/qemuargv2xmldata/nomachine-aarch64.args
+++ /dev/null
@@ -1,11 +0,0 @@
-LC_ALL=C \
-PATH=/bin \
-HOME=/home/test \
-USER=test \
-LOGNAME=test \
-QEMU_AUDIO_DRV=none \
-/usr/bin/qemu-system-aarch64 \
--name QEMUGuest1 \
--m 512 \
--hda /dev/HostVG/QEMUGuest1 \
--cdrom /root/boot.iso
diff --git a/tests/qemuargv2xmldata/nomachine-aarch64.xml b/tests/qemuargv2xmldata/nomachine-aarch64.xml
deleted file mode 100644
index 9492423389..0000000000
--- a/tests/qemuargv2xmldata/nomachine-aarch64.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<domain type='qemu'>
-  <name>QEMUGuest1</name>
-  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
-  <memory unit='KiB'>524288</memory>
-  <currentMemory unit='KiB'>524288</currentMemory>
-  <vcpu placement='static'>1</vcpu>
-  <os>
-    <type arch='aarch64' machine='virt'>hvm</type>
-    <boot dev='hd'/>
-  </os>
-  <features>
-    <gic version='2'/>
-  </features>
-  <clock offset='utc'/>
-  <on_poweroff>destroy</on_poweroff>
-  <on_reboot>restart</on_reboot>
-  <on_crash>destroy</on_crash>
-  <devices>
-    <emulator>/usr/bin/qemu-system-aarch64</emulator>
-    <disk type='block' device='disk'>
-      <driver name='qemu' type='raw'/>
-      <source dev='/dev/HostVG/QEMUGuest1'/>
-      <target dev='hda' bus='ide'/>
-      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
-    </disk>
-    <disk type='file' device='cdrom'>
-      <driver name='qemu' type='raw'/>
-      <source file='/root/boot.iso'/>
-      <target dev='hdc' bus='ide'/>
-      <readonly/>
-      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
-    </disk>
-    <controller type='ide' index='0'/>
-    <graphics type='sdl'/>
-    <video>
-      <model type='cirrus' vram='16384' heads='1' primary='yes'/>
-    </video>
-    <memballoon model='none'/>
-  </devices>
-</domain>
diff --git a/tests/qemuargv2xmldata/nomachine-ppc64.xml b/tests/qemuargv2xmldata/nomachine-ppc64.xml
index 1f15a950e3..18b0c5c20a 100644
--- a/tests/qemuargv2xmldata/nomachine-ppc64.xml
+++ b/tests/qemuargv2xmldata/nomachine-ppc64.xml
@@ -5,7 +5,7 @@
   <currentMemory unit='KiB'>524288</currentMemory>
   <vcpu placement='static'>1</vcpu>
   <os>
-    <type arch='ppc64' machine='pseries'>hvm</type>
+    <type arch='ppc64' machine='pseries-2.12'>hvm</type>
     <boot dev='hd'/>
   </os>
   <clock offset='utc'/>
@@ -27,7 +27,7 @@
       <readonly/>
       <address type='drive' controller='0' bus='0' target='0' unit='2'/>
     </disk>
-    <controller type='usb' index='0'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'>
diff --git a/tests/qemuargv2xmldata/nomachine-x86_64.xml b/tests/qemuargv2xmldata/nomachine-x86_64.xml
index 33cde4c55a..6863c8f5f4 100644
--- a/tests/qemuargv2xmldata/nomachine-x86_64.xml
+++ b/tests/qemuargv2xmldata/nomachine-x86_64.xml
@@ -5,7 +5,7 @@
   <currentMemory unit='KiB'>524288</currentMemory>
   <vcpu placement='static'>1</vcpu>
   <os>
-    <type arch='x86_64' machine='pc-0.11'>hvm</type>
+    <type arch='x86_64' machine='pc-i440fx-2.12'>hvm</type>
     <boot dev='hd'/>
   </os>
   <features>
@@ -30,7 +30,7 @@
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
     </disk>
-    <controller type='usb' index='0'>
+    <controller type='usb' index='0' model='piix3-uhci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'/>
diff --git a/tests/qemuargv2xmldata/pseries-disk.xml b/tests/qemuargv2xmldata/pseries-disk.xml
index 1f15a950e3..18b0c5c20a 100644
--- a/tests/qemuargv2xmldata/pseries-disk.xml
+++ b/tests/qemuargv2xmldata/pseries-disk.xml
@@ -5,7 +5,7 @@
   <currentMemory unit='KiB'>524288</currentMemory>
   <vcpu placement='static'>1</vcpu>
   <os>
-    <type arch='ppc64' machine='pseries'>hvm</type>
+    <type arch='ppc64' machine='pseries-2.12'>hvm</type>
     <boot dev='hd'/>
   </os>
   <clock offset='utc'/>
@@ -27,7 +27,7 @@
       <readonly/>
       <address type='drive' controller='0' bus='0' target='0' unit='2'/>
     </disk>
-    <controller type='usb' index='0'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'>
diff --git a/tests/qemuargv2xmldata/pseries-nvram.xml b/tests/qemuargv2xmldata/pseries-nvram.xml
index 7787847a90..500227afc0 100644
--- a/tests/qemuargv2xmldata/pseries-nvram.xml
+++ b/tests/qemuargv2xmldata/pseries-nvram.xml
@@ -5,7 +5,7 @@
   <currentMemory unit='KiB'>524288</currentMemory>
   <vcpu placement='static'>1</vcpu>
   <os>
-    <type arch='ppc64' machine='pseries'>hvm</type>
+    <type arch='ppc64' machine='pseries-2.12'>hvm</type>
     <boot dev='hd'/>
   </os>
   <clock offset='utc'/>
@@ -14,7 +14,7 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-ppc64</emulator>
-    <controller type='usb' index='0'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'>
diff --git a/tests/qemuargv2xmltest.c b/tests/qemuargv2xmltest.c
index cb010268c4..966e75ef5f 100644
--- a/tests/qemuargv2xmltest.c
+++ b/tests/qemuargv2xmltest.c
@@ -65,7 +65,8 @@ static int testCompareXMLToArgvFiles(const char *xmlfile,
     if (virTestLoadFile(cmdfile, &cmd) < 0)
         goto fail;
 
-    if (!(vmdef = qemuParseCommandLineString(driver.caps, driver.xmlopt,
+    if (!(vmdef = qemuParseCommandLineString(driver.qemuCapsCache,
+                                             driver.caps, driver.xmlopt,
                                              cmd, NULL, NULL, NULL)))
         goto fail;
 
@@ -154,6 +155,20 @@ mymain(void)
     if (qemuTestDriverInit(&driver) < 0)
         return EXIT_FAILURE;
 
+# define LOAD_CAPS(arch) \
+    do { \
+        virQEMUCapsPtr qemuCaps; \
+        qemuCaps = qemuTestParseCapabilitiesArch(VIR_ARCH_X86_64, \
+                                                 "qemucapabilitiesdata/caps_2.12.0." arch ".xml"); \
+        if (virFileCacheInsertData(driver.qemuCapsCache, \
+                                   "/usr/bin/qemu-system-" arch, \
+                                   qemuCaps) < 0) \
+            return EXIT_FAILURE; \
+    } while (0)
+
+    LOAD_CAPS("x86_64");
+    LOAD_CAPS("aarch64");
+    LOAD_CAPS("ppc64");
 
 # define DO_TEST_FULL(name, flags) \
     do { \
@@ -290,7 +305,6 @@ mymain(void)
     DO_TEST("machine-keywrap-none-argv");
 
     DO_TEST("nomachine-x86_64");
-    DO_TEST("nomachine-aarch64");
     DO_TEST("nomachine-ppc64");
 
     qemuTestDriverFree(&driver);
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
index a8dd69f4fa..1b009ba32d 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml
@@ -160,7 +160,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-1.5' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-1.5' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-q35-1.4' maxCpus='255'/>
   <machine name='pc-q35-1.5' alias='q35' maxCpus='255'/>
   <machine name='isapc' maxCpus='1'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
index 536e0e19eb..fbf3d2913d 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml
@@ -165,7 +165,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-1.6' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-1.6' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-q35-1.4' maxCpus='255'/>
   <machine name='pc-q35-1.5' maxCpus='255'/>
   <machine name='pc-q35-1.6' alias='q35' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
index 41f57963fa..cbed9870e9 100644
--- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -167,7 +167,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-1.7' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-1.7' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-q35-1.4' maxCpus='255'/>
   <machine name='pc-q35-1.5' maxCpus='255'/>
   <machine name='pc-q35-1.6' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
index 28f2db1fbc..77999f7ede 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml
@@ -185,7 +185,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-2.1' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-2.1' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-1.3' maxCpus='255'/>
   <machine name='pc-0.12' maxCpus='255'/>
   <machine name='pc-q35-1.6' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index 75c2230b25..b299fd9a54 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -1030,7 +1030,7 @@
   <cpu type='tcg' name='MPC8544E_v11'/>
   <cpu type='tcg' name='405GPb'/>
   <cpu type='tcg' name='MPC8541E_v11'/>
-  <machine name='pseries-2.10' alias='pseries' hotplugCpus='yes' maxCpus='1024'/>
+  <machine name='pseries-2.10' alias='pseries' hotplugCpus='yes' maxCpus='1024' default='yes'/>
   <machine name='ref405ep' maxCpus='1'/>
   <machine name='virtex-ml507' maxCpus='1'/>
   <machine name='powernv' maxCpus='2048'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index 5d134f4708..efe2dcd02f 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -1265,7 +1265,7 @@
     <blocker name='msa'/>
     <blocker name='type'/>
   </cpu>
-  <machine name='s390-ccw-virtio-2.10' alias='s390-ccw-virtio' maxCpus='248'/>
+  <machine name='s390-ccw-virtio-2.10' alias='s390-ccw-virtio' maxCpus='248' default='yes'/>
   <machine name='s390-ccw-virtio-2.7' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.6' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.5' maxCpus='248'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
index e5905d727c..6d5bfb43f7 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -932,7 +932,7 @@
     <blocker name='3dnowprefetch'/>
   </cpu>
   <cpu type='tcg' name='486' usable='yes'/>
-  <machine name='pc-i440fx-2.10' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-2.10' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
index df70c7d3e9..4a325068eb 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
@@ -2610,7 +2610,7 @@
     <blocker name='hfpm'/>
     <blocker name='type'/>
   </cpu>
-  <machine name='s390-ccw-virtio-2.11' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248'/>
+  <machine name='s390-ccw-virtio-2.11' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248' default='yes'/>
   <machine name='s390-ccw-virtio-2.7' hotplugCpus='yes' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.6' hotplugCpus='yes' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.10' hotplugCpus='yes' maxCpus='248'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
index c22d8507a6..43a1fd1872 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
@@ -923,7 +923,7 @@
     <blocker name='3dnowprefetch'/>
   </cpu>
   <cpu type='tcg' name='486' usable='yes'/>
-  <machine name='pc-i440fx-2.11' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-2.11' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
index d94082600f..f3af6b641b 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -1048,7 +1048,7 @@
   <cpu type='tcg' name='750_v3.1'/>
   <cpu type='tcg' name='power8e_v2.1'/>
   <cpu type='tcg' name='mpc8568e'/>
-  <machine name='pseries-2.12' alias='pseries' hotplugCpus='yes' maxCpus='1024'/>
+  <machine name='pseries-2.12' alias='pseries' hotplugCpus='yes' maxCpus='1024' default='yes'/>
   <machine name='ref405ep' maxCpus='1'/>
   <machine name='sam460ex' maxCpus='1'/>
   <machine name='virtex-ml507' maxCpus='1'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
index e5b7ffc433..a52fdc4a88 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
@@ -2475,7 +2475,7 @@
     <blocker name='kmac-dea'/>
     <blocker name='hfpm'/>
   </cpu>
-  <machine name='s390-ccw-virtio-2.12' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248'/>
+  <machine name='s390-ccw-virtio-2.12' alias='s390-ccw-virtio' hotplugCpus='yes' maxCpus='248' default='yes'/>
   <machine name='s390-ccw-virtio-2.7' hotplugCpus='yes' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.6' hotplugCpus='yes' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.11' hotplugCpus='yes' maxCpus='248'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index d34d762ca8..3b099c3f88 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -1216,7 +1216,7 @@
     <blocker name='3dnowprefetch'/>
   </cpu>
   <cpu type='tcg' name='486' usable='yes'/>
-  <machine name='pc-i440fx-2.12' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-2.12' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='isapc' hotplugCpus='yes' maxCpus='1'/>
   <machine name='pc-1.1' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.2' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
index 8b480889b8..ba81aeec4c 100644
--- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml
@@ -217,7 +217,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-2.4' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-2.4' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-1.3' maxCpus='255'/>
   <machine name='pc-0.12' maxCpus='255'/>
   <machine name='pc-q35-1.6' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
index 1055b367fb..a52bbadac6 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
@@ -223,7 +223,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-2.5' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-2.5' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-i440fx-2.4' maxCpus='255'/>
   <machine name='pc-1.3' maxCpus='255'/>
   <machine name='pc-0.12' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
index be091167d3..dc185b031e 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
@@ -1005,7 +1005,7 @@
   <cpu type='tcg' name='MPC8544E_v11'/>
   <cpu type='tcg' name='405GPb'/>
   <cpu type='tcg' name='MPC8541E_v11'/>
-  <machine name='pseries-2.6' alias='pseries' maxCpus='255'/>
+  <machine name='pseries-2.6' alias='pseries' maxCpus='255' default='yes'/>
   <machine name='ref405ep' maxCpus='1'/>
   <machine name='virtex-ml507' maxCpus='1'/>
   <machine name='ppce500' maxCpus='32'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
index ea2623c9ef..45162b618d 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
@@ -235,7 +235,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-2.6' alias='pc' maxCpus='255'/>
+  <machine name='pc-i440fx-2.6' alias='pc' maxCpus='255' default='yes'/>
   <machine name='pc-0.12' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' maxCpus='255'/>
   <machine name='pc-1.3' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
index adc3877bd8..2425ec5869 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
@@ -113,7 +113,7 @@
   <arch>s390x</arch>
   <cpu type='kvm' name='host'/>
   <cpu type='tcg' name='host'/>
-  <machine name='s390-ccw-virtio-2.7' alias='s390-ccw-virtio' maxCpus='248'/>
+  <machine name='s390-ccw-virtio-2.7' alias='s390-ccw-virtio' maxCpus='248' default='yes'/>
   <machine name='s390-ccw-virtio-2.5' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.4' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.6' maxCpus='248'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
index 00557a9783..f31f1ed6bf 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
@@ -242,7 +242,7 @@
   <cpu type='tcg' name='core2duo'/>
   <cpu type='tcg' name='phenom'/>
   <cpu type='tcg' name='qemu64'/>
-  <machine name='pc-i440fx-2.7' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-2.7' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
index fdaea3fabb..b1e70a8bec 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
@@ -259,7 +259,7 @@
   <cpu type='tcg' name='z196-base'/>
   <cpu type='tcg' name='z13-base'/>
   <cpu type='tcg' name='z890'/>
-  <machine name='s390-ccw-virtio-2.8' alias='s390-ccw-virtio' maxCpus='248'/>
+  <machine name='s390-ccw-virtio-2.8' alias='s390-ccw-virtio' maxCpus='248' default='yes'/>
   <machine name='s390-ccw-virtio-2.7' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.6' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.5' maxCpus='248'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
index 71548b6326..b27a6c6687 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
@@ -367,7 +367,7 @@
     <blocker name='3dnowprefetch'/>
   </cpu>
   <cpu type='tcg' name='486' usable='yes'/>
-  <machine name='pc-i440fx-2.8' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-2.8' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
index c4ebb73d21..1f912a6007 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
@@ -1021,7 +1021,7 @@
   <cpu type='tcg' name='MPC8544E_v11'/>
   <cpu type='tcg' name='405GPb'/>
   <cpu type='tcg' name='MPC8541E_v11'/>
-  <machine name='pseries-2.9' alias='pseries' hotplugCpus='yes' maxCpus='1024'/>
+  <machine name='pseries-2.9' alias='pseries' hotplugCpus='yes' maxCpus='1024' default='yes'/>
   <machine name='ref405ep' maxCpus='1'/>
   <machine name='virtex-ml507' maxCpus='1'/>
   <machine name='powernv' maxCpus='2048'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
index 302cc5ffa1..4a886f8268 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
@@ -264,7 +264,7 @@
   <cpu type='tcg' name='z196-base'/>
   <cpu type='tcg' name='z13-base'/>
   <cpu type='tcg' name='z890'/>
-  <machine name='s390-ccw-virtio-2.9' alias='s390-ccw-virtio' maxCpus='248'/>
+  <machine name='s390-ccw-virtio-2.9' alias='s390-ccw-virtio' maxCpus='248' default='yes'/>
   <machine name='s390-ccw-virtio-2.7' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.6' maxCpus='248'/>
   <machine name='s390-ccw-virtio-2.5' maxCpus='248'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index c0bfb3f07a..6425112350 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
@@ -850,7 +850,7 @@
     <blocker name='3dnowprefetch'/>
   </cpu>
   <cpu type='tcg' name='486' usable='yes'/>
-  <machine name='pc-i440fx-2.9' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-2.9' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
index 64033dee51..359fe07b7d 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
@@ -1048,7 +1048,7 @@
   <cpu type='tcg' name='750_v3.1'/>
   <cpu type='tcg' name='power5+_v2.1'/>
   <cpu type='tcg' name='mpc8568e'/>
-  <machine name='pseries-3.0' alias='pseries' hotplugCpus='yes' maxCpus='1024'/>
+  <machine name='pseries-3.0' alias='pseries' hotplugCpus='yes' maxCpus='1024' default='yes'/>
   <machine name='ref405ep' maxCpus='1'/>
   <machine name='sam460ex' maxCpus='1'/>
   <machine name='virtex-ml507' maxCpus='1'/>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
index c8da1c5696..d8297620c0 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
@@ -1158,7 +1158,7 @@
     <blocker name='3dnowprefetch'/>
   </cpu>
   <cpu type='tcg' name='486' usable='yes'/>
-  <machine name='pc-i440fx-3.0' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+  <machine name='pc-i440fx-3.0' alias='pc' hotplugCpus='yes' maxCpus='255' default='yes'/>
   <machine name='isapc' hotplugCpus='yes' maxCpus='1'/>
   <machine name='pc-1.1' hotplugCpus='yes' maxCpus='255'/>
   <machine name='pc-1.2' hotplugCpus='yes' maxCpus='255'/>
-- 
2.17.1




More information about the libvir-list mailing list