TencentOS-kernel/net/rxrpc
David Howells 1338f7f759 rxrpc: Fix afs large storage transmission performance drop
[ Upstream commit 02c28dffb13abbaaedece1e4a6493b48ad3f913a ]

Commit 2ad6691d988c, which moved the modification of the status annotation
for a packet in the Tx buffer prior to the retransmission moved the state
clearance, but managed to lose the bit that set it to UNACK.

Consequently, if a retransmission occurs, the packet is accidentally
changed to the ACK state (ie. 0) by masking it off, which means that the
packet isn't counted towards the tally of newly-ACK'd packets if it gets
hard-ACK'd.  This then prevents the congestion control algorithm from
recovering properly.

Fix by reinstating the change of state to UNACK.

Spotted by the generic/460 xfstest.

Fixes: 2ad6691d988c ("rxrpc: Fix race between incoming ACK parser and retransmitter")
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-16 16:31:17 +08:00
..
Kconfig Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
Makefile rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
af_rxrpc.c rxrpc: Fix call interruptibility handling 2021-03-16 16:25:53 +08:00
ar-internal.h rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
call_accept.c rxrpc: Fix notification call on completion of discarded calls 2021-03-16 16:30:47 +08:00
call_event.c rxrpc: Fix afs large storage transmission performance drop 2021-03-16 16:31:17 +08:00
call_object.c rxrpc: Fix call interruptibility handling 2021-03-16 16:25:53 +08:00
conn_client.c rxrpc: Fix call interruptibility handling 2021-03-16 16:25:53 +08:00
conn_event.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
conn_object.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
conn_service.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
input.c rxrpc: Fix handling of rwind from an ACK packet 2021-03-16 16:30:58 +08:00
insecure.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
key.c KEYS: Don't write out to userspace while holding key semaphore 2021-03-16 16:26:42 +08:00
local_event.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
local_object.c rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket 2021-03-16 16:27:08 +08:00
misc.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
net_ns.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
output.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
peer_event.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
peer_object.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
proc.c rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID 2021-03-16 16:30:27 +08:00
protocol.h Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
recvmsg.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
rtt.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
rxkad.c rxrpc: Fix a memory leak in rxkad_verify_response() 2021-03-16 16:28:20 +08:00
security.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
sendmsg.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
skbuff.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00
sysctl.c rxrpc: Fix the excessive initial retransmission timeout 2021-03-16 16:28:20 +08:00
utils.c Init Repo base on linux 5.4.32 long term, and add base tlinux kernel interfaces. 2021-03-16 11:01:34 +08:00