From: Stefan Hajnoczi <stefa...@redhat.com> The current slice is extended when an I/O request exceeds the limit. There is no need to extend the slice every time we check a request.
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> Tested-By: Benoit Canet <ben...@irqsave.net> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/block.c b/block.c index 00eca27..aa16fc4 100644 --- a/block.c +++ b/block.c @@ -3867,10 +3867,7 @@ static bool bdrv_exceed_io_limits(BlockDriverState *bs, int nb_sectors, int bps_ret, iops_ret; now = qemu_get_clock_ns(vm_clock); - if ((bs->slice_start < now) - && (bs->slice_end > now)) { - bs->slice_end = now + BLOCK_IO_SLICE_TIME; - } else { + if (now > bs->slice_end) { bs->slice_start = now; bs->slice_end = now + BLOCK_IO_SLICE_TIME; memset(&bs->slice_submitted, 0, sizeof(bs->slice_submitted)); -- 1.8.1.4