[DTrace-devel] [PATCH] tcp provider: use __ip_queue_xmit() as it is non-static on 5.4
Eugene Loh
eugene.loh at oracle.com
Tue Aug 26 04:57:47 UTC 2025
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
It tests fine. Thanks. Looking forward to the "state" fix!
On 8/25/25 13:16, Alan Maguire wrote:
> On older kernels - 5.4 to be precise - ip_queue_xmit() is a static
> function, so it is better to instrument __ip_queue_xmit() as it
> is extern so not prone to optimization on 5.4 and later kernels.
> With this change, the following previously-failing-on-UEK6U3 tcp tests
> pass (and continue to pass when tested on an upstream kernel):
>
> tst.ipv4localtcp.sh
> tst.ipv4remotetcp.sh
> tst.ipv6localtcp.sh
>
> More work is required to fix up the tcpstate tests for UEK6U3.
>
> Reported-by: Eugene Loh <eugene.loh at oracle.com>
> Signed-off-by: Alan Maguire <alan.maguire at oracle.com>
> ---
> libdtrace/dt_prov_tcp.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/libdtrace/dt_prov_tcp.c b/libdtrace/dt_prov_tcp.c
> index ebdcfbc9..a191efe1 100644
> --- a/libdtrace/dt_prov_tcp.c
> +++ b/libdtrace/dt_prov_tcp.c
> @@ -37,7 +37,10 @@ static probe_dep_t probes[] = {
> { "connect-refused",
> DTRACE_PROBESPEC_NAME, "fbt::tcp_reset:entry" },
> { "connect-request",
> - DTRACE_PROBESPEC_NAME, "fbt::ip_queue_xmit:entry" },
> + /* ip_queue_xmit() is static for older kernels so use __ip_queue_xmit()
> + * which is non-static for older and newer kernels.
> + */
> + DTRACE_PROBESPEC_NAME, "fbt::__ip_queue_xmit:entry" },
> /* ip6_xmit has > 6 args so cannot fentry on aarch64; use rawfbt */
> { "connect-request",
> DTRACE_PROBESPEC_NAME, "rawfbt::ip6_xmit:entry" },
> @@ -48,7 +51,7 @@ static probe_dep_t probes[] = {
> { "receive",
> DTRACE_PROBESPEC_NAME, "fbt::tcp_v4_send_reset:entry" },
> { "send",
> - DTRACE_PROBESPEC_NAME, "fbt::ip_queue_xmit:entry" },
> + DTRACE_PROBESPEC_NAME, "fbt::__ip_queue_xmit:entry" },
> /* ip_send_unicast_reply has 10 args so cannot fentry; use rawfbt */
> { "send",
> DTRACE_PROBESPEC_NAME, "rawfbt::ip_send_unicast_reply:entry" },
More information about the DTrace-devel
mailing list