[Top][All Lists]

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

Re: [Qemu-devel] [PATCH v2 07/16] block: change drain to look only at on

From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH v2 07/16] block: change drain to look only at one child at a time
Date: Thu, 17 Mar 2016 11:10:05 +0800
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, 03/16 15:16, Paolo Bonzini wrote:
> bdrv_requests_pending is checking children to also wait until internal
> requests (such as metadata writes) have completed.  However, checking
> children is in general overkill.  Children requests can be of two kinds:
> - requests caused by an operation on bs, e.g. a bdrv_aio_write to bs
> causing a write to bs->file->bs.  In this case, the parent's in_flight
> count will always be incremented by at least one for every request in
> the child.
> - asynchronous metadata writes or flushes.  Such writes can be started
> even if bs's in_flight count is zero, but not after the .bdrv_drain
> callback has been invoked.
> This patch therefore changes bdrv_drain to finish I/O in the parent
> (after which the parent's in_flight will be locked to zero), call
> bdrv_drain (after which the parent will not generate I/O on the child
> anymore), and then wait for internal I/O in the children to complete.
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>       v1->v2: moved bdrv_drain callback after in_flight is 0
>       in the parent [from QED drain discussion]

This is nice!

Reviewed-by: Fam Zheng <address@hidden>

reply via email to

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