Changelog:
v2
- updated loop structure to restart and check if previous dependencies
need to be accounted for
- added fixes tag to patch #2
Description:
When the CPU model deprecated-features work was completed in QEMU, features that
have a dependency on a deprecated feature were not themselves marked deprecated.
This patch series corrects that oversight.
Specifically, ineff_nc_tx depends on te, which has been deprecated. When a user
starts a VM with deprecated features disabled, QEMU currently emits:
warning: 'ineff_nc_tx' requires 'te'
With these patches, query-cpu-model-expansion includes ineff_nc_tx in the
deprecated-props array alongside the other deprecated features:
{
"return": {
"deprecated-props": [
"ineff_nc_tx",
"bpb",
"te",
"cte",
"csske"
],
"model": {
"name": "gen17a-base",
"props": { ... }
}
}
}
libvirt uses this response to determine which features to disable when the
deprecated_features=on|off attribute is set. With these patches, ineff_nc_tx
will be disabled along with the other deprecated features. The result can be
verified with virsh domcapabilities:
$ virsh domcapabilities --disable-deprecated-features \
--xpath
"/domainCapabilities/cpu/mode[@name='host-model']/feature[@policy='disable']"
<feature policy="disable" name="bpb"/>
<feature policy="disable" name="csske"/>
<feature policy="disable" name="cte"/>
<feature policy="disable" name="ineff_nc_tx"/>
<feature policy="disable" name="te"/>
Collin L. Walling (2):
target/s390x: externalize feat dependency array
target/s390x: mark feats dependent on deprecated feats as deprecated
target/s390x/cpu_features.c | 139 ++++++++++++++++++++++++++++++++++++
target/s390x/cpu_features.h | 4 ++
target/s390x/cpu_models.c | 133 ++--------------------------------
3 files changed, 148 insertions(+), 128 deletions(-)
--
2.55.0