linux-stable/net/rxrpc
David Howells 3572205b19 rxrpc: Adjust retransmission backoff
[ Upstream commit 2c13c05c5f ]

Improve retransmission backoff by only backing off when we retransmit data
packets rather than when we set the lost ack timer.

To this end:

 (1) In rxrpc_resend(), use rxrpc_get_rto_backoff() when setting the
     retransmission timer and only tell it that we are retransmitting if we
     actually have things to retransmit.

     Note that it's possible for the retransmission algorithm to race with
     the processing of a received ACK, so we may see no packets needing
     retransmission.

 (2) In rxrpc_send_data_packet(), don't bump the backoff when setting the
     ack_lost_at timer, as it may then get bumped twice.

With this, when looking at one particular packet, the retransmission
intervals were seen to be 1.5ms, 2ms, 3ms, 5ms, 9ms, 17ms, 33ms, 71ms,
136ms, 264ms, 544ms, 1.088s, 2.1s, 4.2s and 8.3s.

Fixes: c410bf0193 ("rxrpc: Fix the excessive initial retransmission timeout")
Suggested-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
Tested-by: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Link: https://lore.kernel.org/r/164138117069.2023386.17446904856843997127.stgit@warthog.procyon.org.uk/
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-02-01 17:25:46 +01:00
..
af_rxrpc.c rxrpc: Fix deadlock around release of dst cached on udp tunnel 2021-02-10 09:29:13 +01:00
ar-internal.h rxrpc: Fix loss of final ack on shutdown 2020-10-15 13:28:00 +01:00
call_accept.c rxrpc: Fix memory leak in rxrpc_lookup_local 2021-02-03 23:28:50 +01:00
call_event.c rxrpc: Adjust retransmission backoff 2022-02-01 17:25:46 +01:00
call_object.c rxrpc: Fix clearance of Tx/Rx ring when releasing a call 2021-02-17 11:02:28 +01:00
conn_client.c rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() 2021-12-08 09:03:25 +01:00
conn_event.c rxrpc: Fix loss of final ack on shutdown 2020-10-15 13:28:00 +01:00
conn_object.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
conn_service.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
input.c rxrpc: Call state should be read with READ_ONCE() under some circumstances 2021-01-23 16:04:01 +01:00
insecure.c rxrpc: Fix -Wframe-larger-than= warnings from on-stack crypto 2019-07-30 10:32:35 -07:00
Kconfig docs: networking: convert rxrpc.txt to ReST 2020-04-30 12:56:38 -07:00
key.c rxrpc: Fix handling of an unsupported token type in rxrpc_read() 2021-01-23 16:04:03 +01:00
local_event.c rxrpc: Use the tx-phase skb flag to simplify tracing 2019-08-27 10:04:18 +01:00
local_object.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
Makefile rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
misc.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
net_ns.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
output.c rxrpc: Adjust retransmission backoff 2022-02-01 17:25:46 +01:00
peer_event.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
peer_object.c rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() 2021-12-08 09:03:25 +01:00
proc.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
protocol.h rxrpc: Improve jumbo packet counting 2019-08-27 09:48:37 +01:00
recvmsg.c rxrpc: Fix accept on a connection that need securing 2020-10-05 16:35:57 +01:00
rtt.c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 2021-11-18 14:04:03 +01:00
rxkad.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
security.c rxrpc: Fix missing security check on incoming calls 2019-12-20 16:21:32 +00:00
sendmsg.c rxrpc: Fix accept on a connection that need securing 2020-10-05 16:35:57 +01:00
skbuff.c rxrpc: Use skb_unshare() rather than skb_cow_data() 2019-08-27 10:13:46 +01:00
sysctl.c rxrpc: Rewrite the client connection manager 2020-09-08 21:11:43 +01:00
utils.c