[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V6 0/5] Continuous Leaky Bucket Throttling
From: |
Benoît Canet |
Subject: |
[Qemu-devel] [PATCH V6 0/5] Continuous Leaky Bucket Throttling |
Date: |
Mon, 26 Aug 2013 16:42:47 +0200 |
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
in this version:
The throttling core is pretty solid and the surrouding of the patchset needs
polish. (new options ...)
Rebased on top of Stefan's block branch.
switch to new timer API [Benoît]
s/timerstamp/timestamp/g [Fam]
Use QEMUTimerCB [Fam]
qemu_get_config return reference [Fam]
rename throttle_allowed to throttle_schedule_timer [Fam]
remove now parameter from throttle_compute_wait_for [Fam]
rename next_timer to next_timestamp [Fam]
rename ups to avg [Paolo]
let the enum numbering to the work [Paolo]
merge BUCKET_COUNT in the enum [Paolo]
rename bucket to level [Benoît/Stefan]
THROTTLING_H -> THROTTLE_H [Stefan]
use BUCKETS_COUNT in array declaration [Stefan]
remove unit_size [Stefan]
s/delta/delta_ns/g [Stefan]
remove qemu_timer_pending checks [Stefan]
explain magic [Stefan]
s/make/makes/ [Fam]
s/executed/executed,/[Fam]
s/bdrv_drain_throttled/bdrv_start_throttled_reqs/ [Stefan]
assert(!bs->io_limits enabled); [Stefan]
move outside tracked_request_begin/end [Stefan]
s/bycket/bucket/ [Stefan]
s/algoritm/algorithm/ [Stefan]
s/QMP/HMP/ [Stefan]
add missing space [Stefan]
Add \n in qemu-options.hx [Benoît]
rename iops_sector_count to iops_size [Stefan]
V4-V5
Fix bdrv_drain_all broken logic hence fixing the assertion error at exit.
v3-V4:
wrap qemu-option.hx declararation [Eric]
continuus -> continuous [Fam]
unit test [Paolo]
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 | 363 +++++++++++-----------------------
block/qapi.c | 50 +++--
blockdev.c | 205 ++++++++++++++-----
hmp.c | 36 +++-
include/block/block.h | 1 -
include/block/block_int.h | 32 +--
include/qemu/throttle.h | 103 ++++++++++
qapi-schema.json | 40 +++-
qemu-options.hx | 4 +-
qmp-commands.hx | 34 +++-
tests/Makefile | 2 +
tests/test-throttle.c | 481 +++++++++++++++++++++++++++++++++++++++++++++
util/Makefile.objs | 1 +
util/throttle.c | 390 ++++++++++++++++++++++++++++++++++++
14 files changed, 1401 insertions(+), 341 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
- [Qemu-devel] [PATCH V6 0/5] Continuous Leaky Bucket Throttling,
Benoît Canet <=
- [Qemu-devel] [PATCH V6 1/5] throttle: Add a new t hrottling API implementing continuous leaky bucket., Benoît Canet, 2013/08/26
- [Qemu-devel] [PATCH V6 2/5] throttle: Add units t ests, Benoît Canet, 2013/08/26
- [Qemu-devel] [PATCH V6 3/5] block: Enable the new throttling code in the block layer., Benoît Canet, 2013/08/26
- [Qemu-devel] [PATCH V6 4/5] block: Add support fo r throttling burst max in QMP and the command line., Benoît Canet, 2013/08/26
- [Qemu-devel] [PATCH V6 5/5] block: Add iops_siz e to do the iops accounting for a given io size., Benoît Canet, 2013/08/26