[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170310.093519.229256071004713229.davem@davemloft.net>
Date: Fri, 10 Mar 2017 09:35:19 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: dhowells@...hat.com
Cc: netdev@...r.kernel.org, linux-afs@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH net] rxrpc: Wake up the transmitter if Rx window size
increases on the peer
From: David Howells <dhowells@...hat.com>
Date: Fri, 10 Mar 2017 07:48:49 +0000
> The RxRPC ACK packet may contain an extension that includes the peer's
> current Rx window size for this call. We adjust the local Tx window size
> to match. However, the transmitter can stall if the receive window is
> reduced to 0 by the peer and then reopened.
>
> This is because the normal way that the transmitter is re-energised is by
> dropping something out of our Tx queue and thus making space. When a
> single gap is made, the transmitter is woken up. However, because there's
> nothing in the Tx queue at this point, this doesn't happen.
>
> To fix this, perform a wake_up() any time we see the peer's Rx window size
> increasing.
>
> The observable symptom is that calls start failing on ETIMEDOUT and the
> following:
>
> kAFS: SERVER DEAD state=-62
>
> appears in dmesg.
>
> Signed-off-by: David Howells <dhowells@...hat.com>
Applied, thanks David.
Powered by blists - more mailing lists