qemu: record the QEMU default machine in capabilities

We don't honour the QEMU default machine type anymore, always using the
libvirt chosen default instead. The QEMU argv parser, however, will need
to know the exacty QEMU default, so we must record that info.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2018-08-10 13:18:27 +01:00
parent ba0d05c085
commit b985d1a774
28 changed files with 43 additions and 30 deletions

View File

@ -516,6 +516,7 @@ struct virQEMUCapsMachineType {
char *alias;
unsigned int maxCpus;
bool hotplugCpus;
bool qemuDefault;
};
typedef struct _virQEMUCapsHostCPUData virQEMUCapsHostCPUData;
@ -1644,6 +1645,8 @@ 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)
@ -2339,8 +2342,10 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemuCaps,
preferredIdx = qemuCaps->nmachineTypes - 1;
}
if (machines[i]->isDefault)
if (machines[i]->isDefault) {
mach->qemuDefault = true;
defIdx = qemuCaps->nmachineTypes - 1;
}
}
/*
@ -3424,7 +3429,7 @@ virQEMUCapsParseSEVInfo(virQEMUCapsPtr qemuCaps, xmlXPathContextPtr ctxt)
* ...
* <cpu name="pentium3"/>
* ...
* <machine name="pc-1.0" alias="pc" hotplugCpus='yes' maxCpus="4"/>
* <machine name="pc-1.0" alias="pc" hotplugCpus='yes' maxCpus="4" default="yes"/>
* ...
* </qemuCaps>
*/
@ -3589,6 +3594,11 @@ virQEMUCapsLoadCache(virArch hostArch,
if (STREQ_NULLABLE(str, "yes"))
qemuCaps->machineTypes[i].hotplugCpus = true;
VIR_FREE(str);
str = virXMLPropString(nodes[i], "default");
if (STREQ_NULLABLE(str, "yes"))
qemuCaps->machineTypes[i].qemuDefault = true;
VIR_FREE(str);
}
}
VIR_FREE(nodes);
@ -3858,8 +3868,11 @@ virQEMUCapsFormatCache(virQEMUCapsPtr qemuCaps)
qemuCaps->machineTypes[i].alias);
if (qemuCaps->machineTypes[i].hotplugCpus)
virBufferAddLit(&buf, " hotplugCpus='yes'");
virBufferAsprintf(&buf, " maxCpus='%u'/>\n",
virBufferAsprintf(&buf, " maxCpus='%u'",
qemuCaps->machineTypes[i].maxCpus);
if (qemuCaps->machineTypes[i].qemuDefault)
virBufferAddLit(&buf, " default='yes'");
virBufferAddLit(&buf, "/>\n");
}
for (i = 0; i < qemuCaps->ngicCapabilities; i++) {

View File

@ -159,7 +159,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'/>

View File

@ -164,7 +164,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'/>

View File

@ -166,7 +166,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'/>

View File

@ -184,7 +184,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'/>

View File

@ -1029,7 +1029,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'/>

View File

@ -1264,7 +1264,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'/>

View File

@ -931,7 +931,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'/>

View File

@ -2609,7 +2609,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'/>

View File

@ -922,7 +922,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'/>

View File

@ -1047,7 +1047,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'/>

View File

@ -2474,7 +2474,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'/>

View File

@ -1215,7 +1215,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'/>

View File

@ -216,7 +216,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'/>

View File

@ -222,7 +222,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'/>

View File

@ -1004,7 +1004,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'/>

View File

@ -234,7 +234,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'/>

View File

@ -112,7 +112,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'/>

View File

@ -241,7 +241,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'/>

View File

@ -258,7 +258,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'/>

View File

@ -366,7 +366,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'/>

View File

@ -1020,7 +1020,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'/>

View File

@ -263,7 +263,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'/>

View File

@ -849,7 +849,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'/>

View File

@ -1047,7 +1047,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'/>

View File

@ -109,7 +109,7 @@
<microcodeVersion>0</microcodeVersion>
<package></package>
<arch>riscv32</arch>
<machine name='spike_v1.10' maxCpus='1'/>
<machine name='spike_v1.10' maxCpus='1' default='yes'/>
<machine name='spike_v1.9.1' maxCpus='1'/>
<machine name='sifive_e' maxCpus='1'/>
<machine name='virt' maxCpus='8'/>

View File

@ -109,7 +109,7 @@
<microcodeVersion>0</microcodeVersion>
<package></package>
<arch>riscv64</arch>
<machine name='spike_v1.10' maxCpus='1'/>
<machine name='spike_v1.10' maxCpus='1' default='yes'/>
<machine name='spike_v1.9.1' maxCpus='1'/>
<machine name='sifive_e' maxCpus='1'/>
<machine name='virt' maxCpus='8'/>

View File

@ -1156,7 +1156,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'/>