diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index b52e25a072..972f3e24ee 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6756,11 +6756,21 @@ virQEMUCapsStripMachineAliasesForVirtType(virQEMUCaps *qemuCaps, for (i = 0; i < accel->nmachineTypes; i++) { virQEMUCapsMachineType *mach = &accel->machineTypes[i]; - g_autofree char *name = g_steal_pointer(&mach->alias); - if (name) { - virQEMUCapsAddMachine(qemuCaps, virtType, name, NULL, mach->defaultCPU, - mach->maxCpus, mach->hotplugCpus, mach->qemuDefault, + if (mach->alias) { + g_autofree char *origName = g_steal_pointer(&mach->name); + + /* The preferred machine type, which is generally the default by qemu + * in most cases but also generally an alias needs to be kept at the + * first entry in the list, because virQEMUCapsGetPreferredMachine + * picks the first element. Thus we create a new entry for the + * original machine name and replace the existing one by the alias. */ + mach->name = g_steal_pointer(&mach->alias); + + /* also de-assert the copy's default flag, to ensure we don't have multiple + * machines with it */ + virQEMUCapsAddMachine(qemuCaps, virtType, origName, NULL, mach->defaultCPU, + mach->maxCpus, mach->hotplugCpus, false, mach->numaMemSupported, mach->defaultRAMid, mach->deprecated, mach->acpi); } @@ -6778,6 +6788,9 @@ virQEMUCapsStripMachineAliasesForVirtType(virQEMUCaps *qemuCaps, * * Remove all aliases so that the tests depending on the latest capabilities * file can be stable when new files are added. + * + * Additionally if a machine type is default, only the copy created for the + * alias will be kept as default to eliminate churn in output files. */ void virQEMUCapsStripMachineAliases(virQEMUCaps *qemuCaps) diff --git a/tests/qemuxml2xmloutdata/default-kvm-host-arch.x86_64-latest.xml b/tests/qemuxml2xmloutdata/default-kvm-host-arch.x86_64-latest.xml index a9de07d41c..c5f03ff2c1 100644 --- a/tests/qemuxml2xmloutdata/default-kvm-host-arch.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/default-kvm-host-arch.x86_64-latest.xml @@ -5,7 +5,7 @@ 4194304 4 - hvm + hvm diff --git a/tests/qemuxml2xmloutdata/default-qemu-host-arch.x86_64-latest.xml b/tests/qemuxml2xmloutdata/default-qemu-host-arch.x86_64-latest.xml index 37673010f6..36ed26c473 100644 --- a/tests/qemuxml2xmloutdata/default-qemu-host-arch.x86_64-latest.xml +++ b/tests/qemuxml2xmloutdata/default-qemu-host-arch.x86_64-latest.xml @@ -5,7 +5,7 @@ 4194304 4 - hvm + hvm