Re: [PATCH net v2 1/2] tcp: restore RACK list membership when undoing loss
From: nramaswamy
Date: Thu Oct 08 2026 - 17:20:30 EST
From: Neil Ramaswamy <nramaswamy@xxxxxxxxxx>
Hi Neal and Eric,
Thanks for the detailed replies. Neal's approach is much cheaper than my
original patch on a few UML microbenchmarks that I ran.
I'm not entirely sure I understand Eric's usage of "often" when he mentioned
the O(1) list splice, but the metrics that I've collected from my particular
repro seem to suggest that Neal and Yuchung's assumption about LOST but not
EVER_RETRANS segments holds in the cases I captured, so I'd be happy with that
approach.
(One super nit on the runtime complexity of it: in the comment for
tcp_tsorted_relink_skb we say that it's O(1) amortized time, but I think it's
more that during partial undo all relink calls together traverse the RACK list
at most once.)
For Neal's fix, I also did write up a small packetdrill that shows that segments
that are already retransmitted and then marked LOST are not added back to the
RACK list during partial undo, as intended. Happy to contribute that if useful
for explicitly documenting that this is behavior we are okay with.
How would you like to move forward here? Do you want me to fold this into a v3
patch with attribution tags or do you want to send a new patch yourself?
Neil