On 01/12/2016 05:07, Bob Chen wrote:
> Test case:
> 1. QEMU 1.1.2
> 2. Run fio inside the vm, give it some pressure. Watch the realtime
> 3. block_set_io_throttle drive_2 100000000 0 0 2000 0 0 #
> throttle bps and iops, any value
> 4. Observed that the IO is very likely to freeze to zero. The fio
> process stuck!
> 5. Kill the former fio process, start a new one. The IO turns back to normal
> Didn't reproduce it with QEMU 2.5.
> Actually I'm not wishfully thinking the community would help fix this
> bug on such an ancient version. Just hope someone can tell me what is
> the root cause. Then I have to evaluate whether I should move to higher
> version QEMU, or fix this bug on 1.1.2 in-place(if it is a small one).
throttling has been rewritten in QEMU 2.0 (see the commits around
5ddfffb, "throttle: Add a new throttling API implementing continuous
leaky bucket.", 2013-09-06), so the root cause is simply that the old
algorithms were buggy. :)
I think that the new implementation has been backported to QEMU versions
as old as 1.1.2, but if you can move to a newer version it would be simpler.