
On 11/01/21 09:35, Ján Tomko wrote:
This unfortunately cannot be done unconditionally. You need to probe for the availability of -accel, using something like
What are we probing for?
Existence of "-accel". "-accel" allows configuration of accelerator-specific, machine-independent properties. In the past they went in -machine but the two have been separate since 5.0 (with backwards-compatible glue). There were two phases of -accel support in QEMU: - 2.9 to 4.2: only one -accel option supported; specifying a fallback couldn't be done with -accel and required the older "-machine accel=tcg:kvm" instead - 5.0 or newer: multiple -accel options supported, e.g. "-accel tcg -accel kvm" and it would be possible to distinguish them, for example using QOM properties. However Libvirt only ever specifies one accelerator so it makes no difference. That said, my example patch was wrong. It's + { "accel", NULL, QEMU_CAPS_ACCEL }, instead.
The minimal QEMU version supported by libvirt is 1.5.3 and I'm seeing some test cases using -machine pc-i440fx-1.5,accel=tcg in our test suite.
Indeed a fallback is needed, that was my review remark. :)
And I don't see any explicit use of -accel in this patch.
It's right in qemuBuildAccelCommandLine:
+ virCommandAddArg(cmd, "-accel"); + + switch ((virDomainVirtType)def->virtType) { + case VIR_DOMAIN_VIRT_QEMU: + virBufferAddLit(&buf, "tcg"); + break;
Thanks, Paolo