[libvirt] [PATCH v3 0/8] CPU Model Baseline and Comparison for s390x

Collin Walling walling at linux.ibm.com
Thu May 30 14:23:29 UTC 2019


Changelog:

    v2
        - numerous cleanups
            - removed "policy fix function" and now properly check
                for policy == -1 in the CPUDef -> JSON parser
            - resolved some memory leaks

        - added string arg to qemuMonitorJSONParseCPUModelData for
            error message to print out proper command name

    v1
        - introduce baseline
        - split patches into small chunks
        - free'd lingering qemuMonitorCPUModelInfo pointer
        - when converting from virCPUDef -> virJSON, consider
            feature policy FORCED for enabled

___

To run these patches, execute the virsh hypervisor-cpu-compare or 
hypervisor-cpu-baseline commands and pass an XML file describing one or 
more CPU definition. You can use the definition from virsh domcapabilities 
or from a guest XML. There is no need extract it from the file and place 
it a new one, as the XML parser will look specifically for the CPU tags.

___

These patches hookup the virsh hypervisor-cpu-compare/baseline commands 
for the s390x architecture. They take an XML file describing some CPU 
definitions and passes the data to QEMU, where the actual CPU model 
comparison / baseline calculation is handled (available since QEMU 2.8.5).
These calculations are compared against / baselined with the hypervisor
CPU model, which can be observed via the virsh domcapabilities command 
for s390x.

When baselining CPU models and the user appends the --features argument 
to the command, s390x will only report back features that supersede the 
base model definition.

**NOTE** if the --features flag is intended to expand ALL features
available to a CPU model (such as the huge list of features reported
by a full CPU model expansion), please let me know and I can resolve 
this.

The first patch pulls some code out of the CPU Model Expansion JSON 
function so that it can be later used for the Comparison and Baseline 
JSON functions.

The rest of the patches follow this sequence:
    - introduce JSON monitor functions
    - introduce capability and update test files
    - hook up monitor functions to virsh command

Patch 7 pulls out some code from the CPUDef XML parser to be
reused in the comparison hookup.

Thanks.

x86 and Power review by Daniel Henrique Barboza (thanks!)

Collin Walling (8):
  qemu_monitor: helper functions for CPU models
  qemu_monitor: implement query-cpu-model-baseline
  qemu_capabilities: introduce QEMU_CAPS_QUERY_CPU_MODEL_BASELINE
  qemu_driver: hook up query-cpu-model-baseline
  qemu_monitor: implement query-cpu-model-comparison
  qemu_capabilities: introduce QEMU_CAPS_QUERY_CPU_MODEL_COMPARISON
  cpu_conf: xml to cpu definition parse helper
  qemu_driver: hook up query-cpu-model-comparison

 src/conf/cpu_conf.c                              |  30 +++
 src/conf/cpu_conf.h                              |   6 +
 src/cpu/cpu.c                                    |  14 +-
 src/libvirt_private.syms                         |   1 +
 src/qemu/qemu_capabilities.c                     | 138 +++++++++++
 src/qemu/qemu_capabilities.h                     |  20 ++
 src/qemu/qemu_driver.c                           |  38 +++
 src/qemu/qemu_monitor.c                          |  44 ++++
 src/qemu/qemu_monitor.h                          |  18 ++
 src/qemu/qemu_monitor_json.c                     | 297 ++++++++++++++++++++---
 src/qemu/qemu_monitor_json.h                     |  20 ++
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml |   2 +
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml |   2 +
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml |   2 +
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml  |   2 +
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml  |   2 +
 tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml  |   2 +
 tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml  |   2 +
 18 files changed, 591 insertions(+), 49 deletions(-)

-- 
2.7.4




More information about the libvir-list mailing list