[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 05/18] block: change drain to look only at one c
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [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
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>
Fam
- [Qemu-devel] [PATCH 00/18] dataplane: remove RFifoLock (including almost all previously sent patches), Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 01/18] replication: interrupt failover if the main device is closed, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 03/18] mirror: use bdrv_drained_begin/bdrv_drained_end, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 02/18] blockjob: introduce .drain callback for jobs, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 05/18] block: change drain to look only at one child at a time, Paolo Bonzini, 2016/10/13
- Re: [Qemu-devel] [PATCH 05/18] block: change drain to look only at one child at a time,
Fam Zheng <=
- [Qemu-devel] [PATCH 04/18] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 06/18] qed: Implement .bdrv_drain, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 08/18] nfs: move nfs_set_events out of the while loops, Paolo Bonzini, 2016/10/13
- [Qemu-devel] [PATCH 07/18] block: introduce bdrv_poll_while and bdrv_wakeup, Paolo Bonzini, 2016/10/13