Thanks for your advice. It's truly effective to solve the deadlock issue
by releasing AioContext in advance. While in some scenarios, AioContext
could not be releasd such as external snapshot using transaction which
should release AioContext together during clean up() procedure. This 
leads to a dead lock in BDRV_POLL_WHILE when serveral BDS own the
same AioContext.

-----邮件原件-----
发件人: Eric Blake [mailto:[email protected]] 
发送时间: 2017年5月23日 1:33
收件人: Xieyingtai; [email protected]; [email protected]; Fangyi (C)
主题: Re: [Qemu-block] How to solve the deadlock issue when makes an external 
snapshot with the same iothread

On 05/22/2017 04:10 AM, Xieyingtai wrote:
> Hi,
>     Recently, I got a problem when vm with multiple disks made an 
> external snapshot using dataplane with the same iothread. Aio context 
> was acquired in external_snapshot_prepare(), which will be released in
> external_snapshot_clean() with all bs snapshots committed together. In 
> this scene, when the same iothread was configured with multiple disks, 
> the second bs will hang in aio_poll() waiting IO returned, as the 
> iothread could not acquired the aio context.

Does this series clean up your issue?
https://lists.gnu.org/archive/html/qemu-devel/2017-05/msg04923.html

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Reply via email to