diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c258053834a5b7bd8a73ce553203f8f177e0e306..828f0ee7ca2719f8e77032a370108de5e5310df4 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -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) * ... * * ... - * + * * ... * */ @@ -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++) { diff --git a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml index 2a98e8a3c6719caaccb1afe0c911f5c907a53217..243f3dcdef725365d7b8934f78637d164ffa31c5 100644 --- a/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.5.3.x86_64.xml @@ -159,7 +159,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml index 67bb5c597189b5505bc812087a2e6d898a166d3f..68c1384cf929bfc5d6aa62305ac31ece951ce484 100644 --- a/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.6.0.x86_64.xml @@ -164,7 +164,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml index 2df50c71c736b71e6ba7ddc88547df8dba169dc4..d29ee50719324b37b9834b010c510ea8ee1a03b7 100644 --- a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml @@ -166,7 +166,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml index bc1c5d553f5db88b5dcbf4e687397a121bc0e0b5..f48f78005bafcccf144d84502f3c2f8adbba011f 100644 --- a/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.1.1.x86_64.xml @@ -184,7 +184,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml index 91583a5659aaea008dc0a6604550f6d7775ffc28..1add2b6e4b388819abc25aa53204c0cdd22a3ab3 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml @@ -1029,7 +1029,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml index aa61a331b86ba935af718265f41526ead8f2e9ad..e9ccc63402167492d232ea2613ec85a03122379d 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml @@ -1264,7 +1264,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml index 647c0ce4ba6afaf1d4e15674ec3938cf7fe97c72..0896de4a06fa95db990acb7e1ea73b0e01bbbdf6 100644 --- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml @@ -931,7 +931,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml index 2bb4a767e46dc061cb1a7e918ce1e70de1457ce3..ec8330211c17aec19b237d8cadc9df1f2126f707 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml @@ -2609,7 +2609,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml index f07ea7e7964877d36a07937be23b8079758df6fe..f6bcc597445e6fcaef41b9679016e85ae24f1c07 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml @@ -922,7 +922,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml index 3f4ef8fc41c7e3df80dc15706b0cd1b78d185039..877362eaef2d1291f81cb421e19d15277ebc28ed 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -1047,7 +1047,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml index d1d9353f357ce22506da7815ca4b560d362e8fbd..b8e46a970a6509491c1f0ae8e7694b5d28d6b12a 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml @@ -2474,7 +2474,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml index b3d78f9ccbaa948c01443540ac1aefb352f1cebe..edf944bc35c30742906636207bc5f69c2eea0bd4 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml @@ -1215,7 +1215,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml index 5dc67aa2aea7fa738f7aa36322d06ddf414ceb25..41c2f27f634be6b4233fa7542a4f66ab5b7a6174 100644 --- a/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml @@ -216,7 +216,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml index 23cf05b9d6fe16125010044ac72a51db749792d5..62dbcec155e663d5ed6fbdc075c02977b318d79c 100644 --- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml @@ -222,7 +222,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml index 0a4f62996c0db330a995308a16a9112821cda952..8d43234514ee0fc2b3d4e7d87672daf741a17796 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml @@ -1004,7 +1004,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml index f8643335f1acb2c7a07e9b94131e0504a8c55e3c..e7a283d45e6bf7e84996560d0cf66911d367499d 100644 --- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml @@ -234,7 +234,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml index 945afab5c40d62d04ad03e82607c8cc0287fc26c..e8939667b34fd5335020561e3ba8326554da8c6d 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml @@ -112,7 +112,7 @@ s390x - + diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml index 5e1c942bbe36b226b82cf2c537a18111a86f6ec2..8d43092c864f82cff4cd759142b3bc720a3f46f9 100644 --- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml @@ -241,7 +241,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml index 00549630c1232a99368274703394d4678dd0840b..d91182ee84a3ab94115eae23015b6b4b0d54dd4e 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml @@ -258,7 +258,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml index db87895552fc49bf48c09dfa22f8125bf290dc53..6f0403ba482359f140ffca99782d5bae227ac83a 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml @@ -366,7 +366,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml index 149666e0936a34977b9d1fc4422aad1d0493b209..f3e7d238f73937331349b4948f1784add4831d7b 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml @@ -1020,7 +1020,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml index 789279e24d3e809d60f83d0a8975e2447fb3e28b..e336cb19506fe7af383025ff99046fda09c3d952 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml @@ -263,7 +263,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml index 8be3d77fefd759cdfea32087e055d3baa0043ecc..37ddad077c944ddb237320671766c2d853e8ec82 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -849,7 +849,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml index 7e3890e26ee2d7901ce9f4d373733c6f13217041..6892c9bd6400e71094816c1690d0ab6f2981c20e 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml @@ -1047,7 +1047,7 @@ - + diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml index 839dd951810da5369670109f113b35087b5af726..39cc480dd2c3152717b71b7ab9389d960f2b7a40 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml @@ -109,7 +109,7 @@ 0 riscv32 - + diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml index 764d0d51faf28c9cd769d7921cf5e7c573f9b6db..344740879e57af4e410ede140e60b7860fc8fad5 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml @@ -109,7 +109,7 @@ 0 riscv64 - + diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml index 9e3f5629860db5d85de85ca8a43262708d5eeb98..747f51b7998bfd3a9fee69781ea2feb31e31f48e 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml @@ -1156,7 +1156,7 @@ - +