[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight req
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests |
Date: |
Wed, 12 Oct 2016 11:50:27 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 11.10.2016 um 18:45 hat Paolo Bonzini geschrieben:
> > I think my point was that you don't have to count requests at the BB
> > level if you know that there are no requests pending on the BB level
> > that haven't reached the BDS level yet.
>
> I need to count requests at the BB level because the blk_aio_*
> operations have a separate bottom half that is invoked if either 1) they
> never reach BDS (because of an error); or 2) the bdrv_co_* call
> completes without yielding. The count must be >0 when blk_aio_*
> returns, or bdrv_drain (and thus blk_drain) won't loop. Because
> bdrv_drain and blk_drain are conflated, the counter must be the BDS one.
Okay, makes sense.
> In turn, the BDS counter is needed because of the lack of isolated
> sections. The right design would be for blk_isolate_begin to call
> blk_drain on *other* BlockBackends reachable in a child-to-parent visit.
Not really the blk_drain() that completes all pending requests of the
BB, but the BdrvChild callbacks that quiesce the BB. But I think we
really agree here and are just having trouble with the terminology.
> Instead, until that is implemented, we have bdrv_drained_begin that
> emulates that through the same-named callback, followed by a
> parent-to-child bdrv_drain that is almost always unnecessary.
Yes.
> (By the way, I need to repost this series anyway, but let's finish the
> discussion first to understand what you'd like to have in 2.8).
I'm still not completely sold on the order in which we should do things,
but you've been insisting enough that I'll just trust you on this.
Kevin
- [Qemu-devel] [PATCH 0/3] block: new bdrv_drain implementation, Paolo Bonzini, 2016/10/07
- [Qemu-devel] [PATCH 2/3] block: change drain to look only at one child at a time, Paolo Bonzini, 2016/10/07
- [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/10/07
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Kevin Wolf, 2016/10/10
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/10/10
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Kevin Wolf, 2016/10/11
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/10/11
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Kevin Wolf, 2016/10/11
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/10/11
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests,
Kevin Wolf <=
- Re: [Qemu-devel] [PATCH 1/3] block: add BDS field to count in-flight requests, Paolo Bonzini, 2016/10/12
[Qemu-devel] [PATCH 3/3] qed: Implement .bdrv_drain, Paolo Bonzini, 2016/10/07
Re: [Qemu-devel] [PATCH 0/3] block: new bdrv_drain implementation, no-reply, 2016/10/11