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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list