The branch main has been updated by tuexen:

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

commit a1fa30cea6e3bc66ba7243c69f2e5248ea3f79d5
Author:     Nick Banks <nickba...@netflix.com>
AuthorDate: 2025-07-20 11:28:35 +0000
Commit:     Michael Tuexen <tue...@freebsd.org>
CommitDate: 2025-07-20 11:28:35 +0000

    tcp: remove duplicate tcp_bblogging_on checks
    
    Reviewed by:    tuexen
    MFC after:      1 week
    Sponsored by:   Netflix, Inc.
---
 sys/netinet/tcp_hpts.c    | 71 +++++++++++++++++++++++------------------------
 sys/netinet/tcp_log_buf.c |  2 +-
 sys/netinet/tcp_log_buf.h |  8 +++---
 3 files changed, 40 insertions(+), 41 deletions(-)

diff --git a/sys/netinet/tcp_hpts.c b/sys/netinet/tcp_hpts.c
index 91f8251589e4..3b92a3d08f51 100644
--- a/sys/netinet/tcp_hpts.c
+++ b/sys/netinet/tcp_hpts.c
@@ -433,38 +433,40 @@ static void
 tcp_hpts_log(struct tcp_hpts_entry *hpts, struct tcpcb *tp, struct timeval *tv,
     int slots_to_run, int idx, bool from_callout)
 {
-       union tcp_log_stackspecific log;
-       /*
-        * Unused logs are
-        * 64 bit - delRate, rttProp, bw_inuse
-        * 16 bit - cwnd_gain
-        *  8 bit - bbr_state, bbr_substate, inhpts;
-        */
-       memset(&log, 0, sizeof(log));
-       log.u_bbr.flex1 = hpts->p_nxt_slot;
-       log.u_bbr.flex2 = hpts->p_cur_slot;
-       log.u_bbr.flex3 = hpts->p_prev_slot;
-       log.u_bbr.flex4 = idx;
-       log.u_bbr.flex5 = hpts->p_curtick;
-       log.u_bbr.flex6 = hpts->p_on_queue_cnt;
-       log.u_bbr.flex7 = hpts->p_cpu;
-       log.u_bbr.flex8 = (uint8_t)from_callout;
-       log.u_bbr.inflight = slots_to_run;
-       log.u_bbr.applimited = hpts->overidden_sleep;
-       log.u_bbr.delivered = hpts->saved_curtick;
-       log.u_bbr.timeStamp = tcp_tv_to_usectick(tv);
-       log.u_bbr.epoch = hpts->saved_curslot;
-       log.u_bbr.lt_epoch = hpts->saved_prev_slot;
-       log.u_bbr.pkts_out = hpts->p_delayed_by;
-       log.u_bbr.lost = hpts->p_hpts_sleep_time;
-       log.u_bbr.pacing_gain = hpts->p_cpu;
-       log.u_bbr.pkt_epoch = hpts->p_runningslot;
-       log.u_bbr.use_lt_bw = 1;
-       TCP_LOG_EVENTP(tp, NULL,
-                      &tptosocket(tp)->so_rcv,
-                      &tptosocket(tp)->so_snd,
-                      BBR_LOG_HPTSDIAG, 0,
-                      0, &log, false, tv);
+       if (hpts_does_tp_logging && tcp_bblogging_on(tp)) {
+               union tcp_log_stackspecific log;
+               /*
+                * Unused logs are
+                * 64 bit - delRate, rttProp, bw_inuse
+                * 16 bit - cwnd_gain
+                *  8 bit - bbr_state, bbr_substate, inhpts;
+                */
+               memset(&log, 0, sizeof(log));
+               log.u_bbr.flex1 = hpts->p_nxt_slot;
+               log.u_bbr.flex2 = hpts->p_cur_slot;
+               log.u_bbr.flex3 = hpts->p_prev_slot;
+               log.u_bbr.flex4 = idx;
+               log.u_bbr.flex5 = hpts->p_curtick;
+               log.u_bbr.flex6 = hpts->p_on_queue_cnt;
+               log.u_bbr.flex7 = hpts->p_cpu;
+               log.u_bbr.flex8 = (uint8_t)from_callout;
+               log.u_bbr.inflight = slots_to_run;
+               log.u_bbr.applimited = hpts->overidden_sleep;
+               log.u_bbr.delivered = hpts->saved_curtick;
+               log.u_bbr.timeStamp = tcp_tv_to_usectick(tv);
+               log.u_bbr.epoch = hpts->saved_curslot;
+               log.u_bbr.lt_epoch = hpts->saved_prev_slot;
+               log.u_bbr.pkts_out = hpts->p_delayed_by;
+               log.u_bbr.lost = hpts->p_hpts_sleep_time;
+               log.u_bbr.pacing_gain = hpts->p_cpu;
+               log.u_bbr.pkt_epoch = hpts->p_runningslot;
+               log.u_bbr.use_lt_bw = 1;
+               TCP_LOG_EVENTP(tp, NULL,
+                       &tptosocket(tp)->so_rcv,
+                       &tptosocket(tp)->so_snd,
+                       BBR_LOG_HPTSDIAG, 0,
+                       0, &log, false, tv);
+       }
 }
 
 static void
@@ -1353,10 +1355,7 @@ again:
                        }
                        CURVNET_SET(inp->inp_vnet);
                        /* Lets do any logging that we might want to */
-                       if (hpts_does_tp_logging && tcp_bblogging_on(tp)) {
-                               tcp_hpts_log(hpts, tp, &tv, slots_to_run, i,
-                                   from_callout);
-                       }
+                       tcp_hpts_log(hpts, tp, &tv, slots_to_run, i, 
from_callout);
 
                        if (tp->t_fb_ptr != NULL) {
                                kern_prefetch(tp->t_fb_ptr, &did_prefetch);
diff --git a/sys/netinet/tcp_log_buf.c b/sys/netinet/tcp_log_buf.c
index 75d693bc019b..e24790ece43d 100644
--- a/sys/netinet/tcp_log_buf.c
+++ b/sys/netinet/tcp_log_buf.c
@@ -2878,7 +2878,7 @@ tcp_log_sendfile(struct socket *so, off_t offset, size_t 
nbytes, int flags)
        /* double check log state now that we have the lock */
        if (inp->inp_flags & INP_DROPPED)
                goto done;
-       if (tp->_t_logstate != TCP_LOG_STATE_OFF) {
+       if (tcp_bblogging_on(tp)) {
                struct timeval tv;
                tcp_log_eventspecific_t log;
 
diff --git a/sys/netinet/tcp_log_buf.h b/sys/netinet/tcp_log_buf.h
index fef32e16b2e4..3e7eef8a1cda 100644
--- a/sys/netinet/tcp_log_buf.h
+++ b/sys/netinet/tcp_log_buf.h
@@ -539,12 +539,12 @@ struct tcpcb;
                            NULL, NULL, 0, NULL);                       \
        } while (0)
 #endif /* TCP_LOG_FORCEVERBOSE */
+/* Assumes/requires the caller has already checked tcp_bblogging_on(tp). */
 #define        TCP_LOG_EVENTP(tp, th, rxbuf, txbuf, eventid, errornum, len, 
stackinfo, th_hostorder, tv) \
        do {                                                            \
-               if (tcp_bblogging_on(tp))                               \
-                       tcp_log_event(tp, th, rxbuf, txbuf, eventid,    \
-                           errornum, len, stackinfo, th_hostorder,     \
-                           NULL, NULL, 0, tv);                         \
+               KASSERT(tcp_bblogging_on(tp), ("bblogging is off")); \
+               tcp_log_event(tp, th, rxbuf, txbuf, eventid, errornum, len,     
\
+                       stackinfo, th_hostorder, NULL, NULL, 0, tv); \
        } while (0)
 
 #ifdef TCP_BLACKBOX

Reply via email to