On 10/9/26 2:55 PM, Collin Walling wrote:
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(-)


Queued to s390x-staging for 11.2; thank you!

Reply via email to