throttle: Make LeakyBucket.avg and LeakyBucket.max integer types
commitd00e6923b1e2c1bec7840b0a0706764493648527
authorAlberto Garcia <berto@igalia.com>
Thu, 24 Aug 2017 13:24:47 +0000 (24 16:24 +0300)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 29 Aug 2017 15:54:45 +0000 (29 16:54 +0100)
tree69eeea23ae67f21975a6f763b762eff404923189
parent2a8be39ebad013e506e31b069ddcce8993a957bf
throttle: Make LeakyBucket.avg and LeakyBucket.max integer types

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 uint64_t for those types. Let's also use an unsigned type because
we don't allow negative values anyway.

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.

Signed-off-by: Alberto Garcia <berto@igalia.com>
Message-id: f29b840422767b5be2c41c2dfdbbbf6c5f8fedf8.1503580370.git.berto@igalia.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
include/qemu/throttle.h
tests/test-throttle.c
util/throttle.c