On Fri, 08/02 17:53, Benoît Canet wrote: > This patchset implement continous leaky bucket throttling. > > It works mostly on the general case. > The exception is where the load is composed of both reads and writes and two > limits iops_rd and iops_wr are set. > The resulting iops are a little above half of the given limits. > I tried various strategies to avoid this: two timer, two throttled request > queues or even a different algorithm using a priority queue. > The problem is still the same in every version of the code: reads and writes > operation seems entangled. > > Benoît Canet (2): > throttle: Add a new throttling API implementing continuus leaky
s/continuus/continuous/ > bucket. > block: Enable the new throttling code in the block layer. > > block.c | 316 ++++++++------------------------ > block/qapi.c | 21 +-- > blockdev.c | 115 ++++++------ > include/block/block.h | 1 - > include/block/block_int.h | 33 +--- > include/qemu/throttle.h | 111 ++++++++++++ > util/Makefile.objs | 1 + > util/throttle.c | 436 > +++++++++++++++++++++++++++++++++++++++++++++ > 8 files changed, 698 insertions(+), 336 deletions(-) > create mode 100644 include/qemu/throttle.h > create mode 100644 util/throttle.c > > -- > 1.7.10.4 > > -- Fam
