On Mon, Sep 02, 2013 at 02:14:36PM +0200, Benoît Canet wrote: > This patchset implement continous leaky bucket throttling. > > It use two requests queue to enable to do silly unbalanced throttling like > block_set_io_throttle 0 0 0 0 6000 1 > > It use two timer to get the timer callbacks and the throttle.c code simple > > v12: > compute unit only when size > op_size [Fam] > Drop Eric Reviwed by as patches have changed [Benoît] > fix badly concatenated string [Fam] > Add description of burst in header [Fam] > Fix braces spacing [Fam] > Fix qemu-options.hx bracket [Fam] > > v11: > Reapplied Eric's reviewed by (they are precious) > > v10: > Rebased on top of Eric latest patch (merged in qemu-trivial-next) > > v9: > Apply Reviewed-By by Eric > Rebased on top of "qmp: fix integer usage in examples" by Eric (Please > apply it > first) > > v8: > > rearm timer only when it's not pending [Stefan] > Schedule next request right after accouting it [Stefan] > > Benoît Canet (5): > throttle: Add a new throttling API implementing continuous leaky > bucket. > throttle: Add units tests > block: Enable the new throttling code in the block layer. > block: Add support for throttling burst max in QMP and the command > line. > block: Add iops_size to do the iops accounting for a given io size. > > block.c | 338 +++++++++---------------------- > block/qapi.c | 50 +++-- > blockdev.c | 207 ++++++++++++++----- > hmp.c | 36 +++- > include/block/block.h | 1 - > include/block/block_int.h | 32 +-- > include/qemu/throttle.h | 110 +++++++++++ > qapi-schema.json | 40 +++- > qemu-options.hx | 6 +- > qmp-commands.hx | 32 ++- > tests/Makefile | 2 + > tests/test-throttle.c | 481 > +++++++++++++++++++++++++++++++++++++++++++++ > util/Makefile.objs | 1 + > util/throttle.c | 396 +++++++++++++++++++++++++++++++++++++ > 14 files changed, 1393 insertions(+), 339 deletions(-) > create mode 100644 include/qemu/throttle.h > create mode 100644 tests/test-throttle.c > create mode 100644 util/throttle.c > > -- > 1.7.10.4 >
Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan