From: Alan Maguire <alan.maguire@oracle.com>
To: dtrace@lists.linux.dev
Cc: dtrace-devel@oss.oracle.com
Subject: Re: [PATCH v5 0/6] DTrace TCP provider
Date: Tue, 22 Jul 2025 14:53:39 +0100 [thread overview]
Message-ID: <86bf59c7-e5cb-4e10-96db-118b77d70798@oracle.com> (raw)
In-Reply-To: <20250722100749.233821-1-alan.maguire@oracle.com>
looks like this crossed with the merging of v4 + cg changes, please
ignore. Thanks!
On 22/07/2025 11:07, Alan Maguire wrote:
> This series adds TCP provider support, where the probes are
> implemented via underlying fbt and sdt probes.
>
> Due to the use of the sock/inet_sock_set_state tracepoint, intended
> for ~5.15 kernels and later. Tried replacing this with
>
> fbt::tcp_set_state:entry
>
> but this misses a few state transitions, so stuck with using
> the tracepoint.
>
> All tests under test/unittest/tcp pass unmodified on an upstream
> (6.15) kernel and 5.15 UEK7U3 kernel. The updated remote address
> retrieval patch helps ensure tests can all be run.
>
> It implements all documented TCP provider probes:
>
> accept-established, accept-refused, connnect-request,
> connect-established, connect-refused, receive, send,
> state-change
>
> Note that to function correctly this series depends on the
> cg-related patches:
>
> parser: add dt_node_is_tstring()
> cg: validate tstring alloc/free
> cg: optimize ternary expressions for strings
> tstring: fix leaks
>
> Changes since v4:
>
> - updated patch 1 to rename dt_cg_get_member() to
> dt_cg_tramp_get_member() and have it make use of
> dt_cg_ctf_offsetof() (Kris, patch 1)
> - remove tslot update patch since it is handled elsewhere
> (Kris)
> - added R-Bs from Kris
>
> Changes since v3:
>
> - fix patch 2 to really use/describe 6 tstring slots (patch 2)
>
> Changes since v2:
>
> - document tslots change properly, add test (Eugene, patch 2, 3)
> - move more generic type definitions to net.d
> - retain depends_on provider tcp in tcp.d (Kris, patch 5)
> - use depends_on library ip.d to ensure loading order (patch 5)
> - revert tcp flags to uint8_t (Kris, patch 5)
> - improve comments in tcp.d (Kris, Eugene, patch 5)
> - fix up handling of ip:::send for older kernels to avoid null
> dereferences (Eugene, patch 5)
> - fix up provider arguments to match spec (Eugene, patch 5)
>
> Changes since RFC:
>
> - fixed issues with test failures on UEK7 due to missing
> SYN_RCV state change
> - moved get_member() to dt_cg.c (patch 1)
>
> Alan Maguire (6):
> cg: refactor get_member() to use dt_cg_ctf_offsetof
> test/operators: extend ternary tests to cover inet_ntoa*()s
> providers: move network-generic definitions to net.d
> tcp: new provider
> dlibs: sync ip.d, net.d and tcp.d
> unittest/tcp: update test.x
>
> dlibs/aarch64/5.11/ip.d | 27 +-
> dlibs/aarch64/5.11/net.d | 31 +-
> dlibs/aarch64/5.11/tcp.d | 67 +++--
> dlibs/aarch64/5.12/ip.d | 27 +-
> dlibs/aarch64/5.12/net.d | 31 +-
> dlibs/aarch64/5.12/tcp.d | 67 +++--
> dlibs/aarch64/5.14/ip.d | 27 +-
> dlibs/aarch64/5.14/net.d | 31 +-
> dlibs/aarch64/5.14/tcp.d | 67 +++--
> dlibs/aarch64/5.16/ip.d | 27 +-
> dlibs/aarch64/5.16/net.d | 31 +-
> dlibs/aarch64/5.16/tcp.d | 67 +++--
> dlibs/aarch64/5.2/ip.d | 27 +-
> dlibs/aarch64/5.2/net.d | 31 +-
> dlibs/aarch64/5.2/tcp.d | 67 +++--
> dlibs/aarch64/5.6/ip.d | 27 +-
> dlibs/aarch64/5.6/net.d | 31 +-
> dlibs/aarch64/5.6/tcp.d | 67 +++--
> dlibs/aarch64/6.1/ip.d | 27 +-
> dlibs/aarch64/6.1/net.d | 31 +-
> dlibs/aarch64/6.1/tcp.d | 67 +++--
> dlibs/aarch64/6.10/ip.d | 27 +-
> dlibs/aarch64/6.10/net.d | 31 +-
> dlibs/aarch64/6.10/tcp.d | 67 +++--
> dlibs/x86_64/5.11/ip.d | 27 +-
> dlibs/x86_64/5.11/net.d | 31 +-
> dlibs/x86_64/5.11/tcp.d | 67 +++--
> dlibs/x86_64/5.12/ip.d | 27 +-
> dlibs/x86_64/5.12/net.d | 31 +-
> dlibs/x86_64/5.12/tcp.d | 67 +++--
> dlibs/x86_64/5.14/ip.d | 27 +-
> dlibs/x86_64/5.14/net.d | 31 +-
> dlibs/x86_64/5.14/tcp.d | 67 +++--
> dlibs/x86_64/5.16/ip.d | 27 +-
> dlibs/x86_64/5.16/net.d | 31 +-
> dlibs/x86_64/5.16/tcp.d | 67 +++--
> dlibs/x86_64/5.2/ip.d | 27 +-
> dlibs/x86_64/5.2/net.d | 31 +-
> dlibs/x86_64/5.2/tcp.d | 67 +++--
> dlibs/x86_64/5.6/ip.d | 27 +-
> dlibs/x86_64/5.6/net.d | 31 +-
> dlibs/x86_64/5.6/tcp.d | 67 +++--
> dlibs/x86_64/6.1/ip.d | 27 +-
> dlibs/x86_64/6.1/net.d | 31 +-
> dlibs/x86_64/6.1/tcp.d | 67 +++--
> dlibs/x86_64/6.10/ip.d | 27 +-
> dlibs/x86_64/6.10/net.d | 31 +-
> dlibs/x86_64/6.10/tcp.d | 67 +++--
> libdtrace/Build | 2 +
> libdtrace/dt_cg.c | 57 +++-
> libdtrace/dt_cg.h | 4 +-
> libdtrace/dt_prov_io.c | 84 +++---
> libdtrace/dt_prov_ip.c | 45 +--
> libdtrace/dt_prov_proc.c | 4 +-
> libdtrace/dt_prov_sched.c | 2 +-
> libdtrace/dt_prov_tcp.c | 413 ++++++++++++++++++++++++++
> libdtrace/dt_prov_uprobe.c | 4 +-
> libdtrace/dt_provider.c | 1 +
> libdtrace/dt_provider.h | 1 +
> libdtrace/ip.d | 27 +-
> libdtrace/net.d | 31 +-
> libdtrace/tcp.d | 67 +++--
> test/unittest/operators/tst.ternary.d | 20 +-
> test/unittest/operators/tst.ternary.r | 2 +
> test/unittest/tcp/test.x | 8 +-
> 65 files changed, 1731 insertions(+), 1041 deletions(-)
> create mode 100644 libdtrace/dt_prov_tcp.c
>
prev parent reply other threads:[~2025-07-22 13:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-22 10:07 [PATCH v5 0/6] DTrace TCP provider Alan Maguire
2025-07-22 10:07 ` [PATCH v5 1/6] cg: refactor get_member() to use dt_cg_ctf_offsetof Alan Maguire
2025-07-22 10:07 ` [PATCH v5 2/6] test/operators: extend ternary tests to cover inet_ntoa*()s Alan Maguire
2025-07-22 10:07 ` [PATCH v5 3/6] providers: move network-generic definitions to net.d Alan Maguire
2025-07-22 10:07 ` [PATCH v5 4/6] tcp: new provider Alan Maguire
2025-07-22 10:07 ` [PATCH v5 5/6] dlibs: sync ip.d, net.d and tcp.d Alan Maguire
2025-07-22 10:07 ` [PATCH v5 6/6] unittest/tcp: update test.x Alan Maguire
2025-07-22 13:53 ` Alan Maguire [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86bf59c7-e5cb-4e10-96db-118b77d70798@oracle.com \
--to=alan.maguire@oracle.com \
--cc=dtrace-devel@oss.oracle.com \
--cc=dtrace@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.