]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
trace: tcp: add three metrics to trace_tcp_rcvbuf_grow()
authorEric Dumazet <edumazet@google.com>
Tue, 28 Oct 2025 11:58:00 +0000 (12:58 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 30 Oct 2025 00:30:18 +0000 (17:30 -0700)
While chasing yet another receive autotuning bug,
I found useful to add rcv_ssthresh, window_clamp and rcv_wnd.

tcp_stream 40597 [068]  2172.978198: tcp:tcp_rcvbuf_grow: time=50307 rtt_us=50179 copied=77824 inq=0 space=40960 ooo=0 scaling_ratio=219 rcvbuf=131072 rcv_ssthresh=107474 window_clamp=112128 rcv_wnd=110592
tcp_stream 40597 [068]  2173.028528: tcp:tcp_rcvbuf_grow: time=50336 rtt_us=50206 copied=110592 inq=0 space=77824 ooo=0 scaling_ratio=219 rcvbuf=509444 rcv_ssthresh=328658 window_clamp=435813 rcv_wnd=331776
tcp_stream 40597 [068]  2173.078830: tcp:tcp_rcvbuf_grow: time=50305 rtt_us=50070 copied=270336 inq=0 space=110592 ooo=0 scaling_ratio=219 rcvbuf=509444 rcv_ssthresh=431159 window_clamp=435813 rcv_wnd=434176
tcp_stream 40597 [068]  2173.129137: tcp:tcp_rcvbuf_grow: time=50313 rtt_us=50118 copied=434176 inq=0 space=270336 ooo=0 scaling_ratio=219 rcvbuf=2457847 rcv_ssthresh=1299511 window_clamp=2102611 rcv_wnd=1302528
tcp_stream 40597 [068]  2173.179451: tcp:tcp_rcvbuf_grow: time=50318 rtt_us=50041 copied=1019904 inq=0 space=434176 ooo=0 scaling_ratio=219 rcvbuf=2457847 rcv_ssthresh=2087445 window_clamp=2102611 rcv_wnd=2088960

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Link: https://patch.msgid.link/20251028-net-tcp-recv-autotune-v3-2-74b43ba4c84c@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/trace/events/tcp.h

index 9d2c36c6a0ed74c82306f347ff41fabed7ada8c4..6757233bd0641778ce3ee260c9d757070adc0fcf 100644 (file)
@@ -218,6 +218,9 @@ TRACE_EVENT(tcp_rcvbuf_grow,
                __field(__u32, space)
                __field(__u32, ooo_space)
                __field(__u32, rcvbuf)
+               __field(__u32, rcv_ssthresh)
+               __field(__u32, window_clamp)
+               __field(__u32, rcv_wnd)
                __field(__u8, scaling_ratio)
                __field(__u16, sport)
                __field(__u16, dport)
@@ -245,6 +248,9 @@ TRACE_EVENT(tcp_rcvbuf_grow,
                                     tp->rcv_nxt;
 
                __entry->rcvbuf = sk->sk_rcvbuf;
+               __entry->rcv_ssthresh = tp->rcv_ssthresh;
+               __entry->window_clamp = tp->window_clamp;
+               __entry->rcv_wnd = tp->rcv_wnd;
                __entry->scaling_ratio = tp->scaling_ratio;
                __entry->sport = ntohs(inet->inet_sport);
                __entry->dport = ntohs(inet->inet_dport);
@@ -264,11 +270,14 @@ TRACE_EVENT(tcp_rcvbuf_grow,
        ),
 
        TP_printk("time=%u rtt_us=%u copied=%u inq=%u space=%u ooo=%u scaling_ratio=%u rcvbuf=%u "
+                 "rcv_ssthresh=%u window_clamp=%u rcv_wnd=%u "
                  "family=%s sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 "
                  "saddrv6=%pI6c daddrv6=%pI6c skaddr=%p sock_cookie=%llx",
                  __entry->time, __entry->rtt_us, __entry->copied,
                  __entry->inq, __entry->space, __entry->ooo_space,
                  __entry->scaling_ratio, __entry->rcvbuf,
+                 __entry->rcv_ssthresh, __entry->window_clamp,
+                 __entry->rcv_wnd,
                  show_family_name(__entry->family),
                  __entry->sport, __entry->dport,
                  __entry->saddr, __entry->daddr,