[libvirt PATCH v3 6/6] qemu: drop support for full CPU model expansion

Jiri Denemark jdenemar at redhat.com
Fri Oct 8 15:01:25 UTC 2021


On Fri, Oct 08, 2021 at 10:01:45 +0100, Daniel P. Berrangé wrote:
> The "canonical CPU features" capability is a derivative of the
> "unavailable features" capability, which is exposed when seeing
> the "max" CPU models has the "unavailable-features" property.
> 
> This property was actually added back in QEMU version 2.8.0 per
> the QAPI schema
> 
>   @unavailable-features: List of properties that prevent
>                          the CPU model from running in the current
>                          host. (since 2.8)
> 
> so given our minimum QEMU version 2.11 there is no need to
> query this.
> 
> XXX strangely when we stop querying this, the domain
> capabilities data for CPUs changes significantly for QEMU
> versions less than 4.1.0. This suggests this code was masking
> a need for some other capability check that would trigger for
> QEMU < 4.1.0 ?

This is because QEMU_CAPS_CANONICAL_CPU_FEATURES was not enabled in the
capabilities data files for QEMU < 4.1.0. And since this feature is just
an alias for QEMU_CAPS_CPU_UNAVAILABLE_FEATURES, the situation is caused
by missing this UNAVAILABLE_FEATURES capability. And indeed
qom-list-properties on max-x86_64-cpu does not list unavailable-features
This property is only supported by query-cpu-definitions, which is what
you found in the QAPI schema. Similarly named property of a CPU class
was apparently added only in 4.1.0.

Fortunately QEMU_CAPS_CPU_UNAVAILABLE_FEATURES was only selected as a
conservative witness for QEMU which supports hyphens in all feature
names at the time I implemented this in libvirt.

That said, I believe it is safe to apply this patch. But please, rewrite
the misleading commit message.

And I think there's one more patch missing as we can now remove
QEMU_CAPS_CANONICAL_CPU_FEATURES completely (well, by adding the X_
prefix).

Jirka




More information about the libvir-list mailing list