[PATCH net-next v2 10/14] tcp: expose rmem and backlog in tcp and mptcp rcvbuf_grow tracepoints
From: <hidden>
Date: 2026-03-14 20:14:58
Also in:
linux-doc, linux-kselftest, linux-trace-kernel, lkml, mptcp, netdev
Subsystem:
networking [mptcp], networking [tcp], the rest, tracing · Maintainers:
Matthieu Baerts, Mat Martineau, Eric Dumazet, Neal Cardwell, Linus Torvalds, Steven Rostedt, Masami Hiramatsu
From: Wesley Atwell <redacted> Extend the tcp_rcvbuf_grow and mptcp_rcvbuf_grow tracepoints with the live receive-memory allocation and backlog occupancy that now drive the window-growth decisions in this series. That makes it easier to inspect sender-visible rwnd state against the actual hard receive-memory inputs. Signed-off-by: Wesley Atwell <redacted> --- include/trace/events/mptcp.h | 11 +++++++---- include/trace/events/tcp.h | 12 +++++++----- 2 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/include/trace/events/mptcp.h b/include/trace/events/mptcp.h
index 269d949b2025..167970e8e0a5 100644
--- a/include/trace/events/mptcp.h
+++ b/include/trace/events/mptcp.h@@ -199,6 +199,8 @@ TRACE_EVENT(mptcp_rcvbuf_grow, __field(__u32, inq) __field(__u32, space) __field(__u32, ooo_space) + __field(__u32, rmem_alloc) + __field(__u32, backlog_len) __field(__u32, rcvbuf) __field(__u32, rcv_wnd) __field(__u8, scaling_ratio)
@@ -228,6 +230,8 @@ TRACE_EVENT(mptcp_rcvbuf_grow, MPTCP_SKB_CB(msk->ooo_last_skb)->end_seq - msk->ack_seq; + __entry->rmem_alloc = tcp_rmem_used(sk); + __entry->backlog_len = READ_ONCE(msk->backlog_len); __entry->rcvbuf = sk->sk_rcvbuf; __entry->rcv_wnd = atomic64_read(&msk->rcv_wnd_sent) - msk->ack_seq;
@@ -248,12 +252,11 @@ TRACE_EVENT(mptcp_rcvbuf_grow, __entry->skaddr = sk; ), - TP_printk("time=%u rtt_us=%u copied=%u inq=%u space=%u ooo=%u scaling_ratio=%u " - "rcvbuf=%u rcv_wnd=%u family=%d sport=%hu dport=%hu saddr=%pI4 " - "daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c skaddr=%p", + TP_printk("time=%u rtt_us=%u copied=%u inq=%u space=%u ooo=%u scaling_ratio=%u rmem_alloc=%u backlog_len=%u rcvbuf=%u rcv_wnd=%u family=%d sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c skaddr=%p", __entry->time, __entry->rtt_us, __entry->copied, __entry->inq, __entry->space, __entry->ooo_space, - __entry->scaling_ratio, __entry->rcvbuf, __entry->rcv_wnd, + __entry->scaling_ratio, __entry->rmem_alloc, + __entry->backlog_len, __entry->rcvbuf, __entry->rcv_wnd, __entry->family, __entry->sport, __entry->dport, __entry->saddr, __entry->daddr, __entry->saddr_v6, __entry->daddr_v6, __entry->skaddr)
diff --git a/include/trace/events/tcp.h b/include/trace/events/tcp.h
index f155f95cdb6e..92d0bd6be0ba 100644
--- a/include/trace/events/tcp.h
+++ b/include/trace/events/tcp.h@@ -217,6 +217,8 @@ TRACE_EVENT(tcp_rcvbuf_grow, __field(__u32, inq) __field(__u32, space) __field(__u32, ooo_space) + __field(__u32, rmem_alloc) + __field(__u32, backlog_len) __field(__u32, rcvbuf) __field(__u32, rcv_ssthresh) __field(__u32, window_clamp)
@@ -247,6 +249,8 @@ TRACE_EVENT(tcp_rcvbuf_grow, TCP_SKB_CB(tp->ooo_last_skb)->end_seq - tp->rcv_nxt; + __entry->rmem_alloc = tcp_rmem_used(sk); + __entry->backlog_len = READ_ONCE(sk->sk_backlog.len); __entry->rcvbuf = sk->sk_rcvbuf; __entry->rcv_ssthresh = tp->rcv_ssthresh; __entry->window_clamp = tp->window_clamp;
@@ -269,13 +273,11 @@ TRACE_EVENT(tcp_rcvbuf_grow, __entry->sock_cookie = sock_gen_cookie(sk); ), - 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", + TP_printk("time=%u rtt_us=%u copied=%u inq=%u space=%u ooo=%u scaling_ratio=%u rmem_alloc=%u backlog_len=%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->scaling_ratio, __entry->rmem_alloc, + __entry->backlog_len, __entry->rcvbuf, __entry->rcv_ssthresh, __entry->window_clamp, __entry->rcv_wnd, show_family_name(__entry->family),
--
2.43.0