[libvirt] [PATCH 0/9] Qemu: s390: Cpu Model Support

Jason J. Herne jjherne at linux.vnet.ibm.com
Sun Dec 18 19:22:20 UTC 2016


This patch set enables cpu model support for s390. The user can now set exact
cpu models, query supported models via virsh domcapabilities, and use host-model
and host-passthrough modes. The end result is that migration is safer because
Qemu will perform runnability checking on the destination host and quit with an
error if the guest's cpu model is not supported.   

Note: Some test data has been separated from corresponding test case updates for
ease of review.

Changelog
---------
[v3]

s390: Cpu driver support for update and compare
 - Fixed indentation of error message in  virCPUs390Update
 
test-data: Qemu caps replies and xml for s390x qemu 2.7 and 2.8
 - Moved this patch before introduction of query-cpu-model-expansion
 - Regenerated all test data

tests: domain capabilities: qemu 2.7 and 2.8 on s390x
 - Added Qemu 2.7 test
 - Removed fake host model name
 - Moved this patch before introduction of query-cpu-model-expansion

tests: qemu capabilites: qemu 2.7 and 2.8 on s390x
 - Moved this patch before introduction of query-cpu-model-expansion
 - Stop using fake host cpu
 
qemu: qmp query-cpu-model-expansion command
 - Moved query-cpu-model-expansion capability to this patch
 - changed label "cleanup" to "error" in qemuMonitorCPUModelInfoCopy
 - qemuMonitorJSONParseCPUModelProperty is now static, and also made
   appropriate changes when passing a boolean to virJSONValueGetBoolean
 - removed unnecessary error checking when assigning "data" variable in
   qemuMonitorJSONGetCPUModelExpansion 
 - Fix up capabilities test data to reflect changes from this commit
 - fixed query-cpu-model-expansion's enumeration formatting
 
qemu-caps: Get host model directly from Qemu when available
 - Moved query-cpu-model-expansion capability from this patch
 - virQEMUCapsCopyCPUModelFromQEMU is now static and type void
 - check for native guest is done before attempting to set host CPU
 - s390x no longer falls back to getting host CPU model from the host
   if it cannot be retrieved from QEMU
 - fixed unnecessary intialization of some variables that were introduced
   in v2 of these patches
 - virQEMUCapsLoadHostCPUModelInfo now first allocates data into a
   qemuMonitorCPUModelInfoPtr before assigning it to appropriate qemuCaps field
 - if we do not have QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION available, skip
   trying to read the hostCPU portion of the qemu cache file
 - all hostCPU element parsing is handled in its entirety within function
   virQEMUCapsLoadHostCPUModelInfo
 - Fix up capabilities test data to reflect changes from this commit

qemu: command: Support new cpu feature argument syntax
 - Add error message for case where s390 guest attempts to use cpu features on
   older qemu.
 - Combined the tests into this commit
 - Now tests s390 cpu features both with and without query-cpu-model-expansion

[v2]
* Added s390x cpu and capabilities tests
* Added cpu feature syntax tests
* Dropped patch: Warn when migrating host-passthrough
* Added patch: Document migrating host-passthrough is dangerous

s390: Cpu driver support for update and compare
 - Compare: Added comment explaining why s390 bypasses the cpuCompare operation
 - Update: Added error message explaining minimum match mode is not supported
 - Update: Ensure user is not using unsupported optional feature policy
 - Update: Use virCPUDefUpdateFeature to update/create user requested features
 - Other minor fixes
 
s390-cpu: Remove nodeData and decode
 - Completely remove nodeData and decode functions

qemu: qmp query-cpu-model-expansion command
 - Cleaned up debug print
 - Restructured qemuMonitorJSONGetCPUModelExpansion
 - Added more JSON parsing error handling
 - CPU model features now parsed via an iterator
 - qemuMonitorJSONGetCPUModelExpansion: Fixed double free of model ptr
 - Restructure qemuMonitorCPUModelInfoFree
 - Other minor fixes

qemu-caps: Get host model directly from Qemu when available
 - virQEMUCapsProbeQMPHostCPU: indentation fix
 - Fixed rebase error involving a missing 'goto cleanup;'.
 - Fix indentation in virQEMUCapsProbeQMPHostCPU
 - virQEMUCapsInitHostCPUModel now routes to virQEMUCapsCopyModelFromQEMU or
   virQEMUCapsCopyModelFromHost, depending on architecture.
 - Restructure hostCpu data in qemu caps cache xml
 - Other minor fixes

Collin L. Walling (5):
  test-data: Qemu caps replies and xml for s390x qemu 2.7 and 2.8
  tests: domain capabilities: qemu 2.7 and 2.8 on s390x
  tests: qemu capabilites: qemu 2.7 and 2.8 on s390x
  qemu: qmp query-cpu-model-expansion command
  qemu: command: Support new cpu feature argument syntax

Jason J. Herne (4):
  s390: Cpu driver support for update and compare
  s390-cpu: Remove nodeData and decode
  qemu-caps: Get host model directly from Qemu when available
  tests: qemuxml2argv s390x cpu model

 po/POTFILES.in                                     |     1 +
 src/cpu/cpu_s390.c                                 |   103 +-
 src/qemu/qemu_capabilities.c                       |   190 +-
 src/qemu/qemu_capabilities.h                       |     3 +
 src/qemu/qemu_command.c                            |    18 +-
 src/qemu/qemu_monitor.c                            |    62 +
 src/qemu/qemu_monitor.h                            |    22 +
 src/qemu/qemu_monitor_json.c                       |   117 +
 src/qemu/qemu_monitor_json.h                       |     6 +
 tests/domaincapsschemadata/qemu_2.7.0.s390x.xml    |    78 +
 tests/domaincapsschemadata/qemu_2.8.0.s390x.xml    |   159 +
 tests/domaincapstest.c                             |    18 +
 .../qemucapabilitiesdata/caps_2.7.0.s390x.replies  | 11999 +++++++++++++++++
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml    |   140 +
 .../qemucapabilitiesdata/caps_2.8.0.s390x.replies  | 13380 +++++++++++++++++++
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml    |   286 +
 tests/qemucapabilitiestest.c                       |     2 +
 .../qemuxml2argv-cpu-s390-features.args            |    19 +
 .../qemuxml2argv-cpu-s390-features.xml             |    23 +
 .../qemuxml2argv-cpu-s390-zEC12.args               |    19 +
 .../qemuxml2argv-cpu-s390-zEC12.xml                |    21 +
 tests/qemuxml2argvtest.c                           |    14 +
 22 files changed, 26638 insertions(+), 42 deletions(-)
 create mode 100644 tests/domaincapsschemadata/qemu_2.7.0.s390x.xml
 create mode 100644 tests/domaincapsschemadata/qemu_2.8.0.s390x.xml
 create mode 100644 tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
 create mode 100644 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
 create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
 create mode 100644 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-s390-features.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-s390-features.xml
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-s390-zEC12.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-s390-zEC12.xml

-- 
2.7.4




More information about the libvir-list mailing list