[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250613230907.1702265-1-ncardwell.sw@gmail.com>
Date: Fri, 13 Jun 2025 19:09:03 -0400
From: Neal Cardwell <ncardwell.sw@...il.com>
To: David Miller <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Eric Dumazet <edumazet@...gle.com>
Cc: netdev@...r.kernel.org,
Neal Cardwell <ncardwell@...gle.com>
Subject: [PATCH net-next 0/3] tcp: remove obsolete RFC3517/RFC6675 code
From: Neal Cardwell <ncardwell@...gle.com>
RACK-TLP loss detection has been enabled as the default loss detection
algorithm for Linux TCP since 2018, in:
commit b38a51fec1c1 ("tcp: disable RFC6675 loss detection")
In case users ran into unexpected bugs or performance regressions,
that commit allowed Linux system administrators to revert to using
RFC3517/RFC6675 loss recovery by setting net.ipv4.tcp_recovery to 0.
In the seven years since 2018, our team has not heard reports of
anyone reverting Linux TCP to use RFC3517/RFC6675 loss recovery, and
we can't find any record in web searches of such a revert.
RACK-TLP was published as a standards-track RFC, RFC8985, in February
2021.
Several other major TCP implementations have default-enabled RACK-TLP
at this point as well.
RACK-TLP offers several significant performance advantages over
RFC3517/RFC6675 loss recovery, including much better performance in
the common cases of tail drops, lost retransmissions, and reordering.
It is now time to remove the obsolete and unused RFC3517/RFC6675 loss
recovery code. This will allow a substantial simplification of the
Linux TCP code base, and removes 12 bytes of state in every tcp_sock
for 64-bit machines (8 bytes on 32-bit machines).
To arrange the commits in reasonable sizes, this patch series is split
into 3 commits:
(1) Removes the core RFC3517/RFC6675 logic.
(2) Removes the RFC3517/RFC6675 hint state and the first layer of logic that
updates that state.
(3) Removes the emptied-out tcp_clear_retrans_hints_partial() helper function
and all of its call sites.
Neal Cardwell (3):
tcp: remove obsolete and unused RFC3517/RFC6675 loss recovery code
tcp: remove RFC3517/RFC6675 hint state: lost_skb_hint, lost_cnt_hint
tcp: remove RFC3517/RFC6675 tcp_clear_retrans_hints_partial()
Documentation/networking/ip-sysctl.rst | 8 +-
.../networking/net_cachelines/tcp_sock.rst | 2 -
include/linux/tcp.h | 3 -
include/net/tcp.h | 6 -
net/ipv4/tcp.c | 3 +-
net/ipv4/tcp_input.c | 151 ++----------------
net/ipv4/tcp_output.c | 6 -
7 files changed, 15 insertions(+), 164 deletions(-)
--
2.50.0.rc1.591.g9c95f17f64-goog
Powered by blists - more mailing lists