The first patch fixes the throttling which was broken by a previous commit.
The next patch replace the existing throttling algorithm by the well described leaky bucket algorithm. Third patch implement bursting by adding *_threshold parameters to qmp_block_set_io_throttle. The last one allow to define the max size of an io when throttling by iops via iops_sector_count. Benoît Canet (4): block: Repair the throttling code. block: Modify the throttling code to implement the leaky bucket algorithm. block: Add support for throttling burst threshold in QMP and the command line. block: Add iops_sector_count to do the iops accounting for a given io size. block.c | 424 +++++++++++++++++++++++++-------------------- block/qapi.c | 28 +++ blockdev.c | 174 +++++++++++++++++-- hmp.c | 36 +++- include/block/block_int.h | 16 +- include/block/coroutine.h | 5 + qapi-schema.json | 40 ++++- qemu-coroutine-lock.c | 14 ++ qemu-options.hx | 2 +- qmp-commands.hx | 34 +++- 10 files changed, 561 insertions(+), 212 deletions(-) -- 1.7.10.4