On Fri 10 Nov 2017 04:19:34 PM CET, Stefan Hajnoczi wrote: > I/O requests hang after stop/cont commands at least since QEMU 2.10.0 > with -drive iops=100: > > (guest)$ dd if=/dev/zero of=/dev/vdb oflag=direct count=1000 > (qemu) stop > (qemu) cont > ...I/O is stuck... > > This happens because blk_set_aio_context() detaches the ThrottleState > while requests may still be in flight: > > if (tgm->throttle_state) { > throttle_group_detach_aio_context(tgm); > throttle_group_attach_aio_context(tgm, new_context); > } > > This patch encloses the detach/attach calls in a drained region so no > I/O request is left hanging. Also add assertions so we don't make the > same mistake again in the future.
I'm wondering about the implications of this change... is it possible now to bypass the I/O limits simply by stopping and quickly resuming the VM? And is that a problem? Berto