[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC V2 0/8] Throttle group cooperative round robin sch
From: |
Benoît Canet |
Subject: |
Re: [Qemu-devel] [RFC V2 0/8] Throttle group cooperative round robin scheduling |
Date: |
Mon, 1 Sep 2014 14:34:34 +0000 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, Aug 20, 2014 at 02:27:06PM +0000, Benoît Canet wrote:
> On Wed, Aug 13, 2014 at 04:23:51PM +0200, Benoît Canet wrote:
> > Hi,
> >
> > Here is my current wip on the throttle group support.
> >
> > For the user interface I implemented Stefanha's idea proposed in Stuttgart.
> >
> > For the throttling algorithm I use a cooperative round robin scheduler.
> >
> > Classical round robin works with a fixed HZ ticks and it's totaly
> > incompatible
> > with the throttling algorithm.
> >
> > So the cooperative round robin scheduler is a way for each block device to
> > decide
> > if a pause must be done and a timer be armed and most important of all which
> > other block device of the group must resume the work once the timer is
> > fired.
> >
> > The advantages of this algorigthm are:
> >
> > -only one timer active at a given time (no more cpu usage than regular
> > throttling)
> > -no central place didacting the sheduling policy like a didactureship:
> > we love collaboration isn't it ?:)
> > -No need to deal with incoming queues to collect requests before
> > scheduling
> > then with and dispatchs queues
> > -Compatible with the throttling code with almost no changes
> > -As you go scheduling
> >
> > Best regards
> >
> > Benoît
> >
> > Benoît Canet (8):
> > throttle: Extract timers from ThrottleState into a separate
> > ThrottleTimers structure
> > throttle: Add throttle group infrastructure
> > throttle: Add throttle group infrastructure tests
> > throttle: Prepare to have multiple timers for one ThrottleState
> > throttle: Add a way to know if throttle_schedule_timer had armed a
> > timer
> > throttle: Add a way to fire one of the timers asap like a bottom half
> > throttle: Add throttle group support
> > throttle: Update throttle infrastructure copyright
> >
> > block.c | 211
> > ++++++++++++++++++++++++++++++++++-----
> > block/Makefile.objs | 1 +
> > block/qapi.c | 7 +-
> > block/throttle-groups.c | 212
> > ++++++++++++++++++++++++++++++++++++++++
> > blockdev.c | 18 +++-
> > hmp.c | 4 +-
> > include/block/block.h | 3 +-
> > include/block/block_int.h | 9 +-
> > include/block/throttle-groups.h | 45 +++++++++
> > include/qemu/throttle.h | 46 ++++++---
> > qapi/block-core.json | 5 +-
> > qemu-options.hx | 1 +
> > qmp-commands.hx | 3 +-
> > tests/test-throttle.c | 137 +++++++++++++++++++-------
> > util/throttle.c | 107 +++++++++++++-------
> > 15 files changed, 684 insertions(+), 125 deletions(-)
> > create mode 100644 block/throttle-groups.c
> > create mode 100644 include/block/throttle-groups.h
> >
> > --
> > 2.1.0.rc1
> >
>
> ping
ping
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [RFC V2 0/8] Throttle group cooperative round robin scheduling,
Benoît Canet <=