[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH for-2.10] throttle: Make LeakyBucke
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH for-2.10] throttle: Make LeakyBucket.avg and LeakyBucket.max integer types |
Date: |
Wed, 9 Aug 2017 10:46:20 +0100 |
User-agent: |
Mutt/1.8.3 (2017-05-23) |
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 <address@hidden>
> ---
> include/qemu/throttle.h | 4 ++--
> util/throttle.c | 7 ++-----
> 2 files changed, 4 insertions(+), 7 deletions(-)
Thanks, applied to my block-next tree:
https://github.com/stefanha/qemu/commits/block-next
Stefan
signature.asc
Description: PGP signature