On 07/23/2013 10:29 AM, Benoît Canet wrote: > The thresholds of the leaky bucket algorithm can be used to allow some > burstiness. > > Signed-off-by: Benoit Canet <ben...@irqsave.net> > --- > block/qapi.c | 24 +++++++++++++ > blockdev.c | 105 > +++++++++++++++++++++++++++++++++++++++++++++++------- > hmp.c | 32 +++++++++++++++-- > qapi-schema.json | 34 ++++++++++++++++-- > qemu-options.hx | 2 +- > qmp-commands.hx | 30 ++++++++++++++-- > 6 files changed, 205 insertions(+), 22 deletions(-) >
> @@ -1916,6 +1971,18 @@ QemuOptsList qemu_common_drive_opts = { > .type = QEMU_OPT_NUMBER, > .help = "limit write operations per second", > },{ > + .name = "iops_threshold", > + .type = QEMU_OPT_NUMBER, > + .help = "total I/O operations threshold", > + },{ Kevin's series renamed these to have a dash in the name, and also moved all the throttling parameters into a sub-struct. Does it make more sense to have just '*throttling' with that sub-struct containing 12 parameters, 6 for limits and 6 for thresholds, or would it be better to have '*throttling' with 6 members for limits, as well as '*throttling-threshold' with the other 6 members? Naming-wise, throttling.bps-total and throttling-threshold.bps-total convey as much information as throttling.bps-total and throttling.bps-total-threshold. > +++ b/qapi-schema.json > @@ -769,6 +769,18 @@ > # > # @image: the info of image used (since: 1.6) > # > +# @bps_threshold: #optional total threshold in bytes (Since 1.6) As others have stated, it would be worth explaining at the high level the difference between limit and threshold (ie. why I need two different parameters), as well as what the threshold defaults to if omitted (which WILL be the case when driven by older management tools). > +++ b/qemu-options.hx > @@ -409,7 +409,7 @@ DEF("drive", HAS_ARG, QEMU_OPTION_drive, > " > [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]\n" > " [,serial=s][,addr=A][,id=name][,aio=threads|native]\n" > " [,readonly=on|off][,copy-on-read=on|off]\n" > - " > [[,bps=b]|[[,bps_rd=r][,bps_wr=w]]][[,iops=i]|[[,iops_rd=r][,iops_wr=w]]\n" > + " > [[,bps=b]|[[,bps_rd=r][,bps_wr=w]]][[,iops=i]|[[,iops_rd=r][,iops_wr=w][,bps_threshold=bt]|[[,bps_rd_threshold=rt][,bps_wr_threshold=wt]]][[,iops_threshold=it]|[[,iops_rd_threshold=rt][,iops_wr_threshold=wt]]\n" Is it worth line-wrapping this, so the help text doesn't pass 80 columns? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature