[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 0/7] block/nbd: decouple reconnect from drain
From: |
Roman Kagan |
Subject: |
Re: [PATCH 0/7] block/nbd: decouple reconnect from drain |
Date: |
Tue, 16 Mar 2021 18:52:51 +0300 |
On Mon, Mar 15, 2021 at 10:45:39PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> 15.03.2021 09:06, Roman Kagan wrote:
> > The reconnection logic doesn't need to stop while in a drained section.
> > Moreover it has to be active during the drained section, as the requests
> > that were caught in-flight with the connection to the server broken can
> > only usefully get drained if the connection is restored. Otherwise such
> > requests can only either stall resulting in a deadlock (before
> > 8c517de24a), or be aborted defeating the purpose of the reconnection
> > machinery (after 8c517de24a).
> >
> > This series aims to just stop messing with the drained section in the
> > reconnection code.
> >
> > While doing so it undoes the effect of 5ad81b4946 ("nbd: Restrict
> > connection_co reentrance"); as I've missed the point of that commit I'd
> > appreciate more scrutiny in this area.
>
>
> The actual point is:
>
> connection_co (together with all functions called from it) has a lot of yield
> points. And we can't just enter the coroutine in any of the when we want, as
> it may break some BH which is actually waited for in this yield point..
>
> Still, we should care only about yield points possible during drained
> section, so we don't need to care about direct qemu_coroutine_yield() inside
> nbd_connection_entry().
>
> Many things changed since 5ad81b4946.. So probably, now all the (possible
> during drained section) yield points in nbd_connection_entry support
> reentering. But some analysis of possible yield points should be done.
Thanks for the explanation. Will do this analysis.
Roman.
- Re: [PATCH 1/7] block/nbd: avoid touching freed connect_thread, (continued)
[PATCH 2/7] block/nbd: use uniformly nbd_client_connecting_wait, Roman Kagan, 2021/03/15
Re: [PATCH 0/7] block/nbd: decouple reconnect from drain, Vladimir Sementsov-Ogievskiy, 2021/03/15
- Re: [PATCH 0/7] block/nbd: decouple reconnect from drain,
Roman Kagan <=
Re: [PATCH 0/7] block/nbd: decouple reconnect from drain, Eric Blake, 2021/03/16
Re: [PATCH 0/7] block/nbd: decouple reconnect from drain, Vladimir Sementsov-Ogievskiy, 2021/03/17