]> Git Repo - qemu.git/commit
block: fix I/O throttling accounting blind spot
authorStefan Hajnoczi <[email protected]>
Fri, 5 Apr 2013 09:32:19 +0000 (11:32 +0200)
committerKevin Wolf <[email protected]>
Fri, 5 Apr 2013 16:58:05 +0000 (18:58 +0200)
commit5905fbc9c94ccd744c1b249472eafcc2d827548a
tree71685e79fabea4499032719f71671420dec26a6b
parent76534da749ceb3b4c13ec09b173bcf6d6c2e36d4
block: fix I/O throttling accounting blind spot

I/O throttling relies on bdrv_acct_done() which is called when a request
completes.  This leaves a blind spot since we only charge for completed
requests, not submitted requests.

For example, if there is 1 operation remaining in this time slice the
guest could submit 3 operations and they will all be submitted
successfully since they don't actually get accounted for until they
complete.

Originally we probably thought this is okay since the requests will be
accounted when the time slice is extended.  In practice it causes
fluctuations since the guest can exceed its I/O limit and it will be
punished for this later on.

Account for I/O upon submission so that I/O limits are enforced
properly.

Signed-off-by: Stefan Hajnoczi <[email protected]>
Tested-By: Benoit Canet <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>
block.c
include/block/block_int.h
This page took 0.026108 seconds and 4 git commands to generate.