All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH V8 0/5] Continuous Leaky Bucket Throttling
@ 2013-08-30 14:36 Benoît Canet
  2013-08-30 14:36 ` [Qemu-devel] [PATCH V8 1/5] throttle: Add a new throttling API implementing continuous leaky bucket Benoît Canet
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Benoît Canet @ 2013-08-30 14:36 UTC (permalink / raw)
  To: qemu-devel; +Cc: kwolf, stefanha, Benoît Canet, stefanha, pbonzini

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:

   rearm timer only when it's not pending [Stefan]
   Schedule next request right after accouting it [Stefan]

v7:
   honor max values if specified [Paolo]
   s/cfg/Linux CFQ/ [Stefan]
   revert throttle_get_config to it's old prototype [Stefan]
   s/size/@size/ [Stefan]
   s/acccount/account/ [Stefan]
   remove tracked_request_end uneeded hunk [Stefan]
   Spaces before (json-int)s [Stefan]

v5-V6:
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                   |  338 +++++++++----------------------
 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           |  396 +++++++++++++++++++++++++++++++++++++
 14 files changed, 1384 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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-08-30 20:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-30 14:36 [Qemu-devel] [PATCH V8 0/5] Continuous Leaky Bucket Throttling Benoît Canet
2013-08-30 14:36 ` [Qemu-devel] [PATCH V8 1/5] throttle: Add a new throttling API implementing continuous leaky bucket Benoît Canet
2013-08-30 14:36 ` [Qemu-devel] [PATCH V8 2/5] throttle: Add units tests Benoît Canet
2013-08-30 14:36 ` [Qemu-devel] [PATCH V8 3/5] block: Enable the new throttling code in the block layer Benoît Canet
2013-08-30 14:36 ` [Qemu-devel] [PATCH V8 4/5] block: Add support for throttling burst max in QMP and the command line Benoît Canet
2013-08-30 20:21   ` Eric Blake
2013-08-30 20:37     ` Benoît Canet
2013-08-30 20:39       ` Eric Blake
2013-08-30 20:56     ` Benoît Canet
2013-08-30 14:36 ` [Qemu-devel] [PATCH V8 5/5] block: Add iops_size to do the iops accounting for a given io size Benoît Canet

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.