qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4] blockjob: Fix hang in block_job_finish_sync


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v4] blockjob: Fix hang in block_job_finish_sync
Date: Wed, 3 Feb 2016 11:01:40 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

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 <address@hidden>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]