On Mon, Aug 07, 2017 at 07:15:29PM +0300, Alberto Garcia wrote: > Both the throttling limits set with the throttling.iops-* and > throttling.bps-* options and their QMP equivalents defined in the > BlockIOThrottle struct are integer values. > > Those limits are also reported in the BlockDeviceInfo struct and they > are integers there as well. > > Therefore there's no reason to store them internally as double and do > the conversion everytime we're setting or querying them, so this patch > uses int64_t for those types. > > LeakyBucket.level and LeakyBucket.burst_level do however remain double > because their value changes depending on the fraction of time elapsed > since the previous I/O operation. > > There's one particular instance of the previous code where bkt->max > could have a non-integer value: that's in throttle_fix_bucket() when > bkt->max is initialized to bkt->avg / 10. This is now an integer > division and the result is rounded. We don't need to worry about this > because: > > a) with the magnitudes we're dealing with (bytes per second, I/O > operations per second) the limits are likely to be always > multiples of 10. > > b) even if they weren't this doesn't affect the actual limits, only > the algorithm that makes the throttling smoother. > > Signed-off-by: Alberto Garcia <be...@igalia.com> > --- > include/qemu/throttle.h | 4 ++-- > util/throttle.c | 7 ++----- > 2 files changed, 4 insertions(+), 7 deletions(-)
Why is this marked for-2.10? Does it fix a bug? Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature