[PATCH net] rxrpc: Wake up the transmitter if Rx window size increases on the peer

David Miller davem at davemloft.net
Fri Mar 10 09:35:19 PST 2017


From: David Howells <dhowells at redhat.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 at redhat.com>

Applied, thanks David.



More information about the linux-afs mailing list