[PATCH RFC 1/2] qemu: use "-accel" option to specify accelerator instead of "-machine"

Paolo Bonzini pbonzini at redhat.com
Mon Jan 11 09:14:58 UTC 2021


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




More information about the libvir-list mailing list