v1:
https://www.redhat.com/archives/libvir-list/2018-October/msg00456.html
Changes since v1 (from code review)
Patch 2: Move the job back into qemuDomainGetIOThreadsLive
Patch 3: Add check for ActiveJob before allowing, use true for
*StatsWorker, and print 'iothread' in output not 'block'
Patch 5: Use virCheckPositiveArgGoto(nparams, error) instead of using
virCheckNonNegativeArgGoto(nparams, error). And then remove
the if (nparams) before the virCheckNonNullArgGoto(params, error);
Patch 6: Add ability to determine which parameter was set via bool
set_poll_{max_ns|grow|shrink} values. Then use those in
the macro that sets the value to determine whether or not
the value will be set based on whether it was changed.
Patch 10: Use bool's to set_ when the value is found in the incoming
params list. Remove the check that says poll_max_ns needs
to be set. Testing proves that if it's set to 0, then the
grow and shrink values can be changed (although they do
nothing)
Patch 12: (NEW) - News article
John Ferlan (12):
qemu: Check for and return IOThread polling values if available
qemu: Split qemuDomainGetIOThreadsLive
qemu: Implement the ability to return IOThread stats
virsh: Add ability to display IOThread stats
lib: Introduce virDomainSetIOThreadParams
qemu: Add monitor functions to set IOThread params
qemu: Alter qemuDomainChgIOThread to take enum instead of bool
qemu: Alter qemuDomainChgIOThread to take qemuMonitorIOThreadInfo
qemu: Detect whether iothread polling is supported
qemu: Introduce qemuDomainSetIOThreadParams
tools: Add virsh iothreadset command
docs: Add news article for IOThread polling
docs/news.xml | 13 +
include/libvirt/libvirt-domain.h | 45 ++
src/driver-hypervisor.h | 8 +
src/libvirt-domain.c | 108 +++++
src/libvirt_public.syms | 5 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_driver.c | 384 ++++++++++++++++--
src/qemu/qemu_monitor.c | 19 +
src/qemu/qemu_monitor.h | 9 +
src/qemu/qemu_monitor_json.c | 50 +++
src/qemu/qemu_monitor_json.h | 4 +
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 21 +-
src/remote_protocol-structs | 10 +
.../caps_2.10.0.aarch64.xml | 1 +
.../caps_2.10.0.ppc64.xml | 1 +
.../caps_2.10.0.s390x.xml | 1 +
.../caps_2.10.0.x86_64.xml | 1 +
.../caps_2.11.0.s390x.xml | 1 +
.../caps_2.11.0.x86_64.xml | 1 +
.../caps_2.12.0.aarch64.xml | 1 +
.../caps_2.12.0.ppc64.xml | 1 +
.../caps_2.12.0.s390x.xml | 1 +
.../caps_2.12.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
.../caps_2.9.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 +
.../caps_3.0.0.riscv32.xml | 1 +
.../caps_3.0.0.riscv64.xml | 1 +
.../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 +
.../caps_3.0.0.x86_64.xml | 1 +
tools/virsh-domain-monitor.c | 7 +
tools/virsh-domain.c | 110 +++++
tools/virsh.pod | 47 ++-
36 files changed, 825 insertions(+), 37 deletions(-)
--
2.17.2