[Top][All Lists]

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

Re: [Qemu-block] [PATCH 05/18] block: change drain to look only at one c

From: Fam Zheng
Subject: Re: [Qemu-block] [PATCH 05/18] block: change drain to look only at one child at a time
Date: Fri, 14 Oct 2016 18:12:26 +0800
User-agent: Mutt/1.7.0 (2016-08-17)

On Thu, 10/13 19:34, 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.

Isn't it "incremented by at least one" instead of "one for every request in the

> - 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>


reply via email to

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