Re: [PATCH net] rxrpc: Wake up the transmitter if Rx window size increases on the peer
From: David Miller
Date: Fri Mar 10 2017 - 12:35:40 EST
From: David Howells <dhowells@xxxxxxxxxx>
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@xxxxxxxxxx>
Applied, thanks David.