On Wed, Mar 25, 2015 at 03:27:26PM +0800, Fam Zheng wrote:
> Currently, throttle timers won't make any progress when VCPU is not
> running, which would stall the request queue in utils, qtest, vm
> suspending, and live migration, without special handling.
> 
> Block jobs are confusingly inconsistent between with and without
> throttling: if user sets a bps limit, stops the vm, then start a block
> job, the block job will not make any progress; in contrary, if user
> unsets the bps limit, or if it's not set, the block job will run
> normally.
> 
> After this patch, with the host clock, even if the VCPUs are stopped,
> the throttle queues will be processed.
> 
> This patch also enables potential to add throttle to bdrv_drain_all.
> Currently all requests are drained immediately. In other words whenever
> it is called, IO throttling goes ineffective (examples: system reset,
> migration and many block job operations.). This is a loophole that guest
> could exploit. If we use the host clock, we can later just trust the
> nested poll. This could be done on top.
> 
> Note that for qemu-iotests case 093, which uses qtest, we still keep vm
> clock so the script can control the clock stepping in order to be
> deterministic.
> 
> Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>
> Reviewed-by: Alberto Garcia <be...@igalia.com>
> Signed-off-by: Fam Zheng <f...@redhat.com>
> 
> ---
> v4: Fix the description. [Alberto]
> v3: More justification in commit message. [Stefan]
>     Add Paolo's and Alberto's rev-bys.
> v2: Don't break qemu-iotests 093.
> ---
>  block.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)

Queued for QEMU 2.4.  Please let me know if you think it's worth risking
adding it in QEMU 2.3.

Thanks, applied to my block-next tree:
https://github.com/stefanha/qemu/commits/block-next

Stefan

Attachment: pgpdFT3tY4Krk.pgp
Description: PGP signature

Reply via email to