git: 6c45a5dad0a0 - main - tcp: improve inflating cwnd in limited transmit

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Mon, 25 Aug 2025 06:13:49 UTC
The branch main has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=6c45a5dad0a000b1fae452b6b1d17aee6857cf5c

commit 6c45a5dad0a000b1fae452b6b1d17aee6857cf5c
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-08-25 06:08:46 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-08-25 06:08:46 +0000

    tcp: improve inflating cwnd in limited transmit
    
    Don't subtract tcp_sack_adjust() sometimes twice, just once in all
    cases.
    
    Reviewed by:            rscheff
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D52140
---
 sys/netinet/tcp_input.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index ec7102223c2d..d5dc516c28aa 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2761,12 +2761,10 @@ enter_recovery:
 				if ((tp->snd_nxt == tp->snd_max) &&
 				    (tp->t_rxtshift == 0))
 					tp->snd_cwnd =
-					    SEQ_SUB(tp->snd_nxt,
-						    tp->snd_una) -
-						tcp_sack_adjust(tp);
+					    SEQ_SUB(tp->snd_nxt, tp->snd_una);
 				tp->snd_cwnd +=
-				    (tp->t_dupacks - tp->snd_limited) *
-				    maxseg - tcp_sack_adjust(tp);
+				    (tp->t_dupacks - tp->snd_limited) * maxseg;
+				tp->snd_cwnd -= tcp_sack_adjust(tp);
 				/*
 				 * Only call tcp_output when there
 				 * is new data available to be sent