Author: tuexen
Date: Thu Feb 13 15:14:46 2020
New Revision: 357858
URL: https://svnweb.freebsd.org/changeset/base/357858

Log:
  sack_newdata and snd_recover hold the same value. Therefore, use only
  a single instance: use snd_recover also where sack_newdata was used.
  
  Submitted by:         Richard Scheffenegger
  Differential Revision:        https://reviews.freebsd.org/D18811

Modified:
  head/cddl/lib/libdtrace/tcp.d
  head/sys/netinet/tcp_input.c
  head/sys/netinet/tcp_log_buf.c
  head/sys/netinet/tcp_log_buf.h
  head/sys/netinet/tcp_output.c
  head/sys/netinet/tcp_sack.c
  head/sys/netinet/tcp_usrreq.c
  head/sys/netinet/tcp_var.h

Modified: head/cddl/lib/libdtrace/tcp.d
==============================================================================
--- head/cddl/lib/libdtrace/tcp.d       Thu Feb 13 14:09:09 2020        
(r357857)
+++ head/cddl/lib/libdtrace/tcp.d       Thu Feb 13 15:14:46 2020        
(r357858)
@@ -244,7 +244,7 @@ translator tcpsinfo_t < struct tcpcb *p > {
        tcps_cwnd_ssthresh =    p == NULL ? -1 : p->snd_ssthresh;
        tcps_srecover =         p == NULL ? -1 : p->snd_recover;
        tcps_sack_fack =        p == NULL ? 0  : p->snd_fack;
-       tcps_sack_snxt =        p == NULL ? 0  : p->sack_newdata;
+       tcps_sack_snxt =        p == NULL ? 0  : p->snd_recover;
        tcps_rto =              p == NULL ? -1 : (p->t_rxtcur * 1000) / `hz;
        tcps_mss =              p == NULL ? -1 : p->t_maxseg;
        tcps_retransmit =       p == NULL ? -1 : p->t_rxtshift > 0 ? 1 : 0;

Modified: head/sys/netinet/tcp_input.c
==============================================================================
--- head/sys/netinet/tcp_input.c        Thu Feb 13 14:09:09 2020        
(r357857)
+++ head/sys/netinet/tcp_input.c        Thu Feb 13 15:14:46 2020        
(r357858)
@@ -2564,7 +2564,7 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, stru
                                        if (tp->t_flags & TF_SACK_PERMIT) {
                                                TCPSTAT_INC(
                                                    tcps_sack_recovery_episode);
-                                               tp->sack_newdata = tp->snd_nxt;
+                                               tp->snd_recover = tp->snd_nxt;
                                                tp->snd_cwnd = maxseg;
                                                (void) 
tp->t_fb->tfb_tcp_output(tp);
                                                goto drop;

Modified: head/sys/netinet/tcp_log_buf.c
==============================================================================
--- head/sys/netinet/tcp_log_buf.c      Thu Feb 13 14:09:09 2020        
(r357857)
+++ head/sys/netinet/tcp_log_buf.c      Thu Feb 13 15:14:46 2020        
(r357858)
@@ -1686,7 +1686,6 @@ retry:
        COPY_STAT(rcv_up);
        COPY_STAT(rcv_adv);
        COPY_STAT(rcv_nxt);
-       COPY_STAT(sack_newdata);
        COPY_STAT(rcv_wnd);
        COPY_STAT_T(dupacks);
        COPY_STAT_T(segqlen);

Modified: head/sys/netinet/tcp_log_buf.h
==============================================================================
--- head/sys/netinet/tcp_log_buf.h      Thu Feb 13 14:09:09 2020        
(r357857)
+++ head/sys/netinet/tcp_log_buf.h      Thu Feb 13 15:14:46 2020        
(r357858)
@@ -32,7 +32,7 @@
 
 #define        TCP_LOG_REASON_LEN      32
 #define        TCP_LOG_TAG_LEN         32
-#define        TCP_LOG_BUF_VER         (7)
+#define        TCP_LOG_BUF_VER         (8)
 
 /*
  * Because the (struct tcp_log_buffer) includes 8-byte uint64_t's, it requires
@@ -144,7 +144,6 @@ struct tcp_log_buffer
        uint32_t        tlb_rcv_up;     /* TCPCB rcv_up */
        uint32_t        tlb_rcv_adv;    /* TCPCB rcv_adv */
        uint32_t        tlb_rcv_nxt;    /* TCPCB rcv_nxt */
-       tcp_seq         tlb_sack_newdata; /* TCPCB sack_newdata */
        uint32_t        tlb_rcv_wnd;    /* TCPCB rcv_wnd */
        uint32_t        tlb_dupacks;    /* TCPCB t_dupacks */
        int             tlb_segqlen;    /* TCPCB segqlen */

Modified: head/sys/netinet/tcp_output.c
==============================================================================
--- head/sys/netinet/tcp_output.c       Thu Feb 13 14:09:09 2020        
(r357857)
+++ head/sys/netinet/tcp_output.c       Thu Feb 13 15:14:46 2020        
(r357858)
@@ -420,7 +420,7 @@ after_sack_rexmit:
                         */
                        if (len > 0) {
                                cwin = tp->snd_cwnd -
-                                       (tp->snd_nxt - tp->sack_newdata) -
+                                       (tp->snd_nxt - tp->snd_recover) -
                                        sack_bytes_rxmt;
                                if (cwin < 0)
                                        cwin = 0;

Modified: head/sys/netinet/tcp_sack.c
==============================================================================
--- head/sys/netinet/tcp_sack.c Thu Feb 13 14:09:09 2020        (r357857)
+++ head/sys/netinet/tcp_sack.c Thu Feb 13 15:14:46 2020        (r357858)
@@ -780,7 +780,7 @@ tcp_sack_partialack(struct tcpcb *tp, struct tcphdr *t
        if ((BYTES_THIS_ACK(tp, th) / tp->t_maxseg) >= 2)
                num_segs = 2;
        tp->snd_cwnd = (tp->sackhint.sack_bytes_rexmit +
-           (tp->snd_nxt - tp->sack_newdata) + num_segs * tp->t_maxseg);
+           (tp->snd_nxt - tp->snd_recover) + num_segs * tp->t_maxseg);
        if (tp->snd_cwnd > tp->snd_ssthresh)
                tp->snd_cwnd = tp->snd_ssthresh;
        tp->t_flags |= TF_ACKNOW;

Modified: head/sys/netinet/tcp_usrreq.c
==============================================================================
--- head/sys/netinet/tcp_usrreq.c       Thu Feb 13 14:09:09 2020        
(r357857)
+++ head/sys/netinet/tcp_usrreq.c       Thu Feb 13 15:14:46 2020        
(r357858)
@@ -2806,8 +2806,8 @@ db_print_tcpcb(struct tcpcb *tp, const char *name, int
            tp->snd_numholes, TAILQ_FIRST(&tp->snd_holes));
 
        db_print_indent(indent);
-       db_printf("snd_fack: 0x%08x   rcv_numsacks: %d   sack_newdata: "
-           "0x%08x\n", tp->snd_fack, tp->rcv_numsacks, tp->sack_newdata);
+       db_printf("snd_fack: 0x%08x   rcv_numsacks: %d\n",
+           tp->snd_fack, tp->rcv_numsacks);
 
        /* Skip sackblks, sackhint. */
 

Modified: head/sys/netinet/tcp_var.h
==============================================================================
--- head/sys/netinet/tcp_var.h  Thu Feb 13 14:09:09 2020        (r357857)
+++ head/sys/netinet/tcp_var.h  Thu Feb 13 15:14:46 2020        (r357858)
@@ -186,8 +186,6 @@ struct tcpcb {
        TAILQ_HEAD(sackhole_head, sackhole) snd_holes;
                                        /* SACK scoreboard (sorted) */
        tcp_seq snd_fack;               /* last seq number(+1) sack'd by rcv'r*/
-       tcp_seq sack_newdata;           /* New data xmitted in this recovery
-                                          episode starts at this seq number */
        struct sackblk sackblks[MAX_SACK_BLKS]; /* seq nos. of sack blocks */
        struct sackhint sackhint;       /* SACK scoreboard hint */
        int     t_rttlow;               /* smallest observerved RTT */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to