Hello, after having agreed it with him, I'm taking over Benoît Canet's work to add support for throttle groups for block devices.
This was the last version of the patches, as written by him: https://lists.gnu.org/archive/html/qemu-devel/2014-10/msg00727.html I rebased the patches and made a few changes, including some of the suggestions that were proposed in the mailing list back then from Fam Zheng and Eric Blake: - The main function, bdrv_io_limits_update_group(), has been significantly rewritten. The algorithm is essentially the same but the code is hopefully more readable and easy to understand now. - I replaced the magic numbers in test_groups() with actual objects allocated using bdrv_new(). - I bumped the version number in the documentation changes from 2.2 to 2.3. - I fixed a few typos and made other minor style changes. - I added the name of the throttle group to BlockDeviceInfo, so now it can be seen from the monitor. I kept the authorship of the original patches except the one that I had to modify substantially. Regards, Berto Alberto Garcia (2): throttle: Add throttle group support throttle: add name of ThrottleGroup to BlockDeviceInfo Benoît Canet (7): throttle: Extract timers from ThrottleState into a separate ThrottleTimers structure throttle: Add throttle group infrastructure throttle: Add throttle group infrastructure tests throttle: Prepare to have multiple timers for one ThrottleState throttle: Add a way to know if throttle_schedule_timer had armed a timer throttle: Add a way to fire one of the timers asap like a bottom half throttle: Update throttle infrastructure copyright block.c | 226 ++++++++++++++++++++++++++++++++++------ block/Makefile.objs | 1 + block/qapi.c | 12 ++- block/throttle-groups.c | 206 ++++++++++++++++++++++++++++++++++++ blockdev.c | 19 +++- hmp.c | 10 +- include/block/block.h | 3 +- include/block/block_int.h | 9 +- include/block/throttle-groups.h | 45 ++++++++ include/qemu/throttle.h | 48 ++++++--- qapi/block-core.json | 9 +- qemu-options.hx | 1 + qmp-commands.hx | 3 +- tests/test-throttle.c | 142 ++++++++++++++++++------- util/throttle.c | 106 ++++++++++++------- 15 files changed, 704 insertions(+), 136 deletions(-) create mode 100644 block/throttle-groups.c create mode 100644 include/block/throttle-groups.h -- 2.1.4