On 02/13/2015 09:06 AM, Alberto Garcia wrote: > The throttle group support use a cooperative round robin scheduling algorithm. > > The principles of the algorithm are simple: > - Each BDS of the group is used as a token in a circular way. > - The active BDS compute if a wait must be done and arm the right timer. > - If a wait must be done the token timer will be armed so the token will > become > the next active BDS. > > Signed-off-by: Alberto Garcia <be...@igalia.com> > --- > block.c | 212 > +++++++++++++++++++++++++++++++++++++++------- > block/qapi.c | 7 +- > block/throttle-groups.c | 2 +- > blockdev.c | 19 ++++- > hmp.c | 4 +- > include/block/block.h | 3 +- > include/block/block_int.h | 9 +- > qapi/block-core.json | 5 +- > qemu-options.hx | 1 + > qmp-commands.hx | 3 +-
Just a qapi review for now... > +++ b/qapi/block-core.json > @@ -989,6 +989,9 @@ > # > # @iops_size: #optional an I/O size in bytes (Since 1.7) > # > +# Why the extra blank line? > +# @group: #optional throttle group name (Since 2.3) > +# > # Returns: Nothing on success > # If @device is not a valid block device, DeviceNotFound > # > @@ -1000,7 +1003,7 @@ > '*bps_max': 'int', '*bps_rd_max': 'int', > '*bps_wr_max': 'int', '*iops_max': 'int', > '*iops_rd_max': 'int', '*iops_wr_max': 'int', > - '*iops_size': 'int' } } > + '*iops_size': 'int', '*group': 'str' } } What is the default if no 'group' is specified, unthrottled? I hate write-only interfaces. What is the corresponding 'query-*' command that I can invoke to learn which group, if any, a node is associated with? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature