[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/7] throttle: Add throttle group support
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 4/7] throttle: Add throttle group support |
Date: |
Fri, 10 Apr 2015 10:52:18 +0100 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, Apr 10, 2015 at 09:58:34AM +0200, Alberto Garcia wrote:
> On Thu, Apr 09, 2015 at 03:22:57PM +0100, Stefan Hajnoczi wrote:
>
> > > @@ -1941,9 +1951,11 @@ void qmp_block_set_io_throttle(const char *device,
> > > int64_t bps, int64_t bps_rd,
> > > aio_context_acquire(aio_context);
> > >
> > > if (!bs->io_limits_enabled && throttle_enabled(&cfg)) {
> > > - bdrv_io_limits_enable(bs);
> > > + bdrv_io_limits_enable(bs, has_group ? group : device);
> > > } else if (bs->io_limits_enabled && !throttle_enabled(&cfg)) {
> > > bdrv_io_limits_disable(bs);
> > > + } else if (bs->io_limits_enabled && throttle_enabled(&cfg)) {
> > > + bdrv_io_limits_update_group(bs, has_group ? group : device);
> > > }
> > >
> > > if (bs->io_limits_enabled) {
> >
> > The semantics are inconsistent:
> >
> > 1. Create drive0 with throttle group "mygroup".
> > 2. Issue block-set-io-throttle device="drive0"
> >
> > The result is that a new throttle group called "drive0" is created.
> > I expected to modify the throttling configuration for drive0 (i.e.
> > "mygroup").
>
> That's right. What we can do is choose the group to update using the
> following criteria, in order of precedence:
>
> 1) The 'group' parameter from block-set-io-throttle.
> 2) The group the device is already member of.
> 3) A new group ("drive0" in this example).
>
> Currently we're not doing 2).
Great, it makes sense to add 2).
> > Now let's disable the throttle group:
> >
> > 3. Issue block-set-io-throttle with 0 values for device="drive0"
> >
> > The result is that "mygroup" is changed to all 0s.
>
> No, that simply removes the device from the group without touching its
> configuration:
>
> > > } else if (bs->io_limits_enabled && !throttle_enabled(&cfg)) {
> > > bdrv_io_limits_disable(bs);
>
> The group name passed by the user is actually not used in this case.
You are right.
Stefan
pgpnA0t_2jYTC.pgp
Description: PGP signature