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


Reply via email to