On 23/03/2017 18:44, Stefan Hajnoczi wrote: >> It's possible to wedge QEMU if the guest tries to reset a virtio-pci >> device as QEMU is also using the drive for a blockjob. This patchset >> aims to allow us to safely pause/resume jobs attached to individual >> nodes in a manner similar to how bdrv_drain_all_begin/end do. > > Weird, I thought the 0 nanosecond sleep that block jobs do in their > main loop allows aio_poll() loops to finish.
The 0 nanosecond sleep is now done in the BDS AioContext rather than in the "non-aio_poll-aware" main loop: commit 0b9caf9b3166c8deb3c4f3a774c2384b069dc29c Author: Fam Zheng <f...@redhat.com> Date: Tue Aug 26 15:15:43 2014 +0800 coroutine: Drop co_sleep_ns block_job_sleep_ns is the only user. Since we are moving towards AioContext aware code, it's better to use the explicit version and drop the old one. Signed-off-by: Fam Zheng <f...@redhat.com> Reviewed-by: BenoƮt Canet <benoit.ca...@nodalink.com> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > I've CCed Fam because I think he has also tackled this issue in the past. Yes, he fixed the same issue for bdrv_drain_all. Paolo