On Tue, Feb 02, 2016 at 10:12:24AM +0800, Fam Zheng wrote: > With a mirror job running on a virtio-blk dataplane disk, sending "q" to > HMP will cause a dead loop in block_job_finish_sync. > > This is because the aio_poll() only processes the AIO context of bs > which has no more work to do, while the main loop BH that is scheduled > for setting the job->completed flag is never processed. > > Fix this by adding a flag in BlockJob structure, to track which context > to poll for the block job to make progress. Its value is set to true > when block_job_coroutine_complete() is called, and is checked in > block_job_finish_sync to determine which context to poll. > > Suggested-by: Stefan Hajnoczi <stefa...@redhat.com> > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > blockjob.c | 6 +++++- > include/block/blockjob.h | 5 +++++ > 2 files changed, 10 insertions(+), 1 deletion(-)
Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
signature.asc
Description: PGP signature