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

Collin Walling posted 8 patches 4 years, 10 months ago
Failed in applying to current master (apply log)
Test syntax-check passed
There is a newer version of this series
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(-)
[libvirt] [PATCH v3 0/8] CPU Model Baseline and Comparison for s390x
Posted by Collin Walling 4 years, 10 months ago
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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 0/8] CPU Model Baseline and Comparison for s390x
Posted by Collin Walling 4 years, 9 months ago
Polite ping. I'd like to at least make sure these patches are on the
right track with what libvirt expects for these commands. :)

On 5/30/19 10:23 AM, Collin Walling wrote:
> 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(-)
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list