v9 of the throttle filtering series with my reviews and R-b tags applied. Requires [PATCH 0/5] qemu: Two block job fixes https://lists.libvirt.org/archives/list/devel@xxxxxxxxxxxxxxxxx/message/TX2YAFHOFO46GR7WVQSPURWHL6O2KCDZ/ to be applied to work properly. Posting for tracking and possibly final review of API. I'll push it before the freeze if there won't be further comments. Changes (most recorded in commit messages): - removed leftover code after deletion of some of the APIs - fixed numerous memleaks - simplified virsh code - dropped test driver pach Chun Feng Wu (16): schema: Add new domain elements to support multiple throttle groups schema: Add new domain elements to support multiple throttle filters config: Introduce ThrottleGroup and corresponding XML parsing config: Introduce ThrottleFilter and corresponding XML parsing qemu: monitor: Add support for ThrottleGroup operations tests: Test qemuMonitorJSONGetThrottleGroup and qemuMonitorJSONUpdateThrottleGroup remote: New APIs for ThrottleGroup lifecycle management qemu: Refactor qemuDomainSetBlockIoTune to extract common methods qemu: Implement qemu driver for throttle API qemu: helper: throttle filter nodename and preparation processing qemu: block: Support block disk along with throttle filters config: validate: Verify iotune, throttle group and filter qemuxmlconftest: Add 'throttlefilter' tests virsh: Refactor iotune options for re-use virsh: Add support for throttle group operations virsh: Add option "throttle-groups" to "attach_disk" Harikumar Rajkumar (1): qemustatusxml2xmldata: Add 'throttlefilter' tests docs/formatdomain.rst | 47 ++ docs/manpages/virsh.rst | 137 +++- include/libvirt/libvirt-domain.h | 14 + src/conf/domain_conf.c | 409 +++++++++++ src/conf/domain_conf.h | 47 ++ src/conf/domain_validate.c | 124 +++- src/conf/schemas/domaincommon.rng | 293 ++++---- src/conf/virconftypes.h | 4 + src/driver-hypervisor.h | 14 + src/libvirt-domain.c | 122 +++ src/libvirt_private.syms | 8 + src/libvirt_public.syms | 6 + src/qemu/qemu_block.c | 136 ++++ src/qemu/qemu_block.h | 49 ++ src/qemu/qemu_command.c | 171 +++++ src/qemu/qemu_command.h | 6 + src/qemu/qemu_domain.c | 77 +- src/qemu/qemu_driver.c | 467 +++++++++--- src/qemu/qemu_hotplug.c | 16 + src/qemu/qemu_monitor.c | 21 + src/qemu/qemu_monitor.h | 9 + src/qemu/qemu_monitor_json.c | 61 ++ src/qemu/qemu_monitor_json.h | 9 + src/remote/remote_driver.c | 2 + src/remote/remote_protocol.x | 31 +- src/remote_protocol-structs | 16 + tests/qemumonitorjsontest.c | 51 ++ .../throttlefilter-in.xml | 392 ++++++++++ .../throttlefilter-out.xml | 393 ++++++++++ tests/qemuxmlactivetest.c | 1 + .../throttlefilter-invalid.x86_64-latest.err | 1 + .../throttlefilter-invalid.xml | 89 +++ .../throttlefilter.x86_64-latest.args | 56 ++ .../throttlefilter.x86_64-latest.xml | 105 +++ tests/qemuxmlconfdata/throttlefilter.xml | 95 +++ tests/qemuxmlconftest.c | 2 + tools/virsh-completer-domain.c | 63 ++ tools/virsh-completer-domain.h | 14 + tools/virsh-domain.c | 695 ++++++++++++++---- 39 files changed, 3845 insertions(+), 408 deletions(-) create mode 100644 tests/qemustatusxml2xmldata/throttlefilter-in.xml create mode 100644 tests/qemustatusxml2xmldata/throttlefilter-out.xml create mode 100644 tests/qemuxmlconfdata/throttlefilter-invalid.x86_64-latest.err create mode 100644 tests/qemuxmlconfdata/throttlefilter-invalid.xml create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.args create mode 100644 tests/qemuxmlconfdata/throttlefilter.x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/throttlefilter.xml -- 2.48.1