On 04/04/2018 10:45 AM, Viktor Mihajlovski wrote: > The QEMU monitor commmand query-cpus is deprecated starting > with QEMU 2.12.0 because it can adversely affect the performance of > a running virtual machine. > > This series enables libvirt to use the new query-cpus-fast interface > if supported by the local QEMU instance and is required in order > to support QEMU once the interface has been removed. > > query-cpus-fast doesn't return the halted state for a virtual CPU, > meaning that the vcpu.<n>.halted value won't be reported with > 'virsh domstats' anymore. This is OK, as stats values are not > guaranteed to be reported under all circumstances and on all > architectures. > > Upstream discussion consensus was that the halted state was > problematic anyway, as it had different semantics per architecture. > The only known exploitation happened for s390, for this architecture > the halted state will be computed based on an architecture-specific > cpu value returned in query-cpus-fast. > > v2 -> v3: > ========= > Patch changes: > 1/6: > - formatting changes as requested by John Ferlan > - updated the qemucapabilitiestest XML files > - dropped A/R-bys (due to change above) > > 2/6: > - fixed comment to also account for query-cpus-fast > > 3/6: > - updated json monitor tests to account for props returned by > query-cpus and query-cpus-fast > - updated json monitor tests to handle the halted property > (moved here from patch 5) > > 4/6: > - removed stale text (about callbacks) from commit message > - simplified qemuMonitorJSONExtractCPUArchInfo call > - enhanced sample JSON response in comment > - fixed inter-function spacing > > 5/6: > - kept s390-specific tests and moved the rest to patch 3 > - reformatted the JSON responses (indented "props") > - dropped R-b > > v1 -> v2: > ========= > Patch changes: > 1/6: > - add Acked-by: Peter Krempa > > 2/6: > - evaluate capability outside of monitor code (changes signatures > of qemuMonitorGetCPUInfo and qemuMonitorGetCpuHalted) > - remove ternary expressions as requested by review > - remove Reviewed-bys due to code changes > > 3/6 > - adapt test cases to changes above > - remove Reviewed-bys due to code changes > > 4/6 > - replace callbacks for architecture data extraction with direct > function calls > - remove Reviewed-bys due to code changes > > Viktor Mihajlovski (6): > qemu: add capability detection for query-cpus-fast > qemu: use query-cpus-fast in JSON monitor > tests: add qemumonitorjson tests for query-cpus-fast > qemu: add architecture-specific CPU info handling > tests: add testcase for s390 query-cpus-fast > qemu: refresh vcpu halted state only via query-cpus-fast > > src/qemu/qemu_capabilities.c | 2 + > src/qemu/qemu_capabilities.h | 1 + > src/qemu/qemu_domain.c | 23 +++- > src/qemu/qemu_monitor.c | 30 +++-- > src/qemu/qemu_monitor.h | 7 +- > src/qemu/qemu_monitor_json.c | 133 +++++++++++++++++++-- > src/qemu/qemu_monitor_json.h | 3 +- > tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + > tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + > tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 + > tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + > .../qemumonitorjson-cpuinfo-ppc64-hotplug-4.data | 8 ++ > .../qemumonitorjson-cpuinfo-s390-fast-cpus.json | 25 ++++ > .../qemumonitorjson-cpuinfo-s390-fast-hotplug.json | 21 ++++ > .../qemumonitorjson-cpuinfo-s390-fast.data | 19 +++ > ...emumonitorjson-cpuinfo-x86-basic-pluggable.data | 5 + > ...qemumonitorjson-cpuinfo-x86-full-fast-cpus.json | 126 +++++++++++++++++++ > ...umonitorjson-cpuinfo-x86-full-fast-hotplug.json | 115 ++++++++++++++++++ > .../qemumonitorjson-cpuinfo-x86-full-fast.data | 109 +++++++++++++++++ > .../qemumonitorjson-cpuinfo-x86-node-full.data | 2 + > tests/qemumonitorjsontest.c | 123 +++++++++++++++---- > tests/qemumonitortestutils.c | 7 ++ > tests/qemumonitortestutils.h | 1 + > 23 files changed, 706 insertions(+), 58 deletions(-) > create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-s390-fast-cpus.json > create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-s390-fast-hotplug.json > create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-s390-fast.data > create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-fast-cpus.json > create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-fast-hotplug.json > create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-cpuinfo-x86-full-fast.data > With a merge for patch1 to top of tree and a couple of caveats from patch2 and patch3 (with any luck the patches will make it to the list as well as this one ;-)) Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> (series) As long as you say OK to the adjustments I can push... Perhaps tomorrow giving anyone else one last chance to provide their feedback! I also merged the qemu_capabilities adjustments. John -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list