From: Aaron Conole <aconole@redhat.com>
To: "Vineeth Pillai (Google)" <vineeth@bitbyteword.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Peter Zijlstra <peterz@infradead.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
Simon Horman <horms@kernel.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Jesper Dangaard Brouer <hawk@kernel.org>,
John Fastabend <john.fastabend@gmail.com>,
Stanislav Fomichev <sdf@fomichev.me>,
Eelco Chaudron <echaudro@redhat.com>,
Ilya Maximets <i.maximets@ovn.org>,
Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>,
Xin Long <lucien.xin@gmail.com>, Jon Maloy <jmaloy@redhat.com>,
Kuniyuki Iwashima <kuniyu@google.com>,
Samiullah Khawaja <skhawaja@google.com>,
Hangbin Liu <liuhangbin@gmail.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org, dev@openvswitch.org,
linux-sctp@vger.kernel.org,
tipc-discussion@lists.sourceforge.net,
linux-trace-kernel@vger.kernel.org
Subject: Re: [PATCH 04/15] net: Use trace_invoke_##name() at guarded tracepoint call sites
Date: Thu, 12 Mar 2026 11:31:37 -0400 [thread overview]
Message-ID: <f7to6ktnjxi.fsf@redhat.com> (raw)
In-Reply-To: <20260312150523.2054552-5-vineeth@bitbyteword.org> (Vineeth Pillai's message of "Thu, 12 Mar 2026 11:04:59 -0400")
"Vineeth Pillai (Google)" <vineeth@bitbyteword.org> writes:
> Replace trace_foo() with the new trace_invoke_foo() at sites already
> guarded by trace_foo_enabled(), avoiding a redundant
> static_branch_unlikely() re-evaluation inside the tracepoint.
> trace_invoke_foo() calls the tracepoint callbacks directly without
> utilizing the static branch again.
>
> Suggested-by: Steven Rostedt <rostedt@goodmis.org>
> Suggested-by: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Vineeth Pillai (Google) <vineeth@bitbyteword.org>
> Assisted-by: Claude:claude-sonnet-4-6
> ---
> net/core/dev.c | 2 +-
> net/core/xdp.c | 2 +-
> net/openvswitch/actions.c | 2 +-
> net/openvswitch/datapath.c | 2 +-
> net/sctp/outqueue.c | 2 +-
> net/tipc/node.c | 2 +-
> 6 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 14a83f2035b93..a48fae2bbf57e 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -6444,7 +6444,7 @@ void netif_receive_skb_list(struct list_head *head)
> return;
> if (trace_netif_receive_skb_list_entry_enabled()) {
> list_for_each_entry(skb, head, list)
> - trace_netif_receive_skb_list_entry(skb);
> + trace_invoke_netif_receive_skb_list_entry(skb);
> }
> netif_receive_skb_list_internal(head);
> trace_netif_receive_skb_list_exit(0);
> diff --git a/net/core/xdp.c b/net/core/xdp.c
> index 9890a30584ba7..53acc887c3434 100644
> --- a/net/core/xdp.c
> +++ b/net/core/xdp.c
> @@ -362,7 +362,7 @@ int xdp_rxq_info_reg_mem_model(struct xdp_rxq_info *xdp_rxq,
> xsk_pool_set_rxq_info(allocator, xdp_rxq);
>
> if (trace_mem_connect_enabled() && xdp_alloc)
> - trace_mem_connect(xdp_alloc, xdp_rxq);
> + trace_invoke_mem_connect(xdp_alloc, xdp_rxq);
> return 0;
> }
>
> diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
> index 792ca44a461da..420eb19322e85 100644
> --- a/net/openvswitch/actions.c
> +++ b/net/openvswitch/actions.c
> @@ -1259,7 +1259,7 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb,
> int err = 0;
>
> if (trace_ovs_do_execute_action_enabled())
> - trace_ovs_do_execute_action(dp, skb, key, a, rem);
> + trace_invoke_ovs_do_execute_action(dp, skb, key, a, rem);
Maybe we should just remove the guard here instead of calling the
invoke. That seems better to me. It wouldn't need to belong to this
series.
> /* Actions that rightfully have to consume the skb should do it
> * and return directly.
> diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
> index e209099218b41..02451629e888e 100644
> --- a/net/openvswitch/datapath.c
> +++ b/net/openvswitch/datapath.c
> @@ -335,7 +335,7 @@ int ovs_dp_upcall(struct datapath *dp, struct sk_buff *skb,
> int err;
>
> if (trace_ovs_dp_upcall_enabled())
> - trace_ovs_dp_upcall(dp, skb, key, upcall_info);
> + trace_invoke_ovs_dp_upcall(dp, skb, key, upcall_info);
Same as above. Seems OVS tracepoints are the only ones that include
the guard without any real reason.
> if (upcall_info->portid == 0) {
> err = -ENOTCONN;
> diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
> index f6b8c13dafa4a..9831afbff070f 100644
> --- a/net/sctp/outqueue.c
> +++ b/net/sctp/outqueue.c
> @@ -1267,7 +1267,7 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
> /* SCTP path tracepoint for congestion control debugging. */
> if (trace_sctp_probe_path_enabled()) {
> list_for_each_entry(transport, transport_list, transports)
> - trace_sctp_probe_path(transport, asoc);
> + trace_invoke_sctp_probe_path(transport, asoc);
> }
>
> sack_ctsn = ntohl(sack->cum_tsn_ack);
> diff --git a/net/tipc/node.c b/net/tipc/node.c
> index af442a5ef8f3d..01e07ec18c56c 100644
> --- a/net/tipc/node.c
> +++ b/net/tipc/node.c
> @@ -1943,7 +1943,7 @@ static bool tipc_node_check_state(struct tipc_node *n, struct sk_buff *skb,
>
> if (trace_tipc_node_check_state_enabled()) {
> trace_tipc_skb_dump(skb, false, "skb for node state check");
> - trace_tipc_node_check_state(n, true, " ");
> + trace_invoke_tipc_node_check_state(n, true, " ");
> }
> l = n->links[bearer_id].link;
> if (!l)
next prev parent reply other threads:[~2026-03-12 15:31 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 15:04 [PATCH 00/15] tracepoint: Avoid double static_branch evaluation at guarded call sites Vineeth Pillai (Google)
2026-03-12 15:04 ` [PATCH 01/15] tracepoint: Add trace_invoke_##name() API Vineeth Pillai (Google)
2026-03-12 15:12 ` Steven Rostedt
2026-03-12 15:39 ` Vineeth Remanan Pillai
2026-03-12 15:53 ` Peter Zijlstra
2026-03-12 16:05 ` Vineeth Remanan Pillai
2026-03-14 0:24 ` Keith Busch
2026-03-12 15:04 ` [PATCH 02/15] kernel: Use trace_invoke_##name() at guarded tracepoint call sites Vineeth Pillai (Google)
2026-03-12 15:04 ` [PATCH 03/15] io_uring: " Vineeth Pillai (Google)
2026-03-12 15:24 ` Keith Busch
2026-03-12 15:38 ` Steven Rostedt
2026-03-18 14:51 ` Vineeth Remanan Pillai
2026-03-12 15:04 ` [PATCH 04/15] net: " Vineeth Pillai (Google)
2026-03-12 15:31 ` Aaron Conole [this message]
2026-03-18 13:40 ` Vineeth Remanan Pillai
2026-03-18 14:13 ` Vineeth Remanan Pillai
2026-03-17 10:34 ` Paolo Abeni
2026-03-12 15:05 ` [PATCH 05/15] accel/habanalabs: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 06/15] cpufreq: " Vineeth Pillai (Google)
2026-03-12 18:58 ` Rafael J. Wysocki
2026-03-13 6:07 ` Viresh Kumar
2026-03-12 15:05 ` [PATCH 07/15] devfreq: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 08/15] dma-buf: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 09/15] fsi: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 10/15] drm: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 11/15] HID: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 12/15] i2c: " Vineeth Pillai (Google)
2026-03-12 16:50 ` Wolfram Sang
2026-03-12 15:05 ` [PATCH 13/15] spi: " Vineeth Pillai (Google)
2026-03-12 15:34 ` Mark Brown
2026-03-12 15:42 ` Steven Rostedt
2026-03-12 16:54 ` Mark Brown
2026-03-12 17:00 ` Steven Rostedt
2026-03-12 20:05 ` Mark Brown
2026-03-12 15:05 ` [PATCH 14/15] scsi: ufs: " Vineeth Pillai (Google)
2026-03-12 15:05 ` [PATCH 15/15] btrfs: " Vineeth Pillai (Google)
2026-03-13 11:57 ` David Sterba
2026-03-12 15:12 ` [PATCH 00/15] tracepoint: Avoid double static_branch evaluation at guarded " Mathieu Desnoyers
2026-03-12 15:23 ` Steven Rostedt
2026-03-12 15:28 ` Mathieu Desnoyers
2026-03-12 15:40 ` Steven Rostedt
2026-03-12 15:49 ` Mathieu Desnoyers
2026-03-12 15:54 ` Peter Zijlstra
2026-03-12 15:57 ` Mathieu Desnoyers
2026-03-12 16:08 ` Vineeth Remanan Pillai
2026-03-12 16:54 ` Andrii Nakryiko
2026-03-12 17:02 ` Steven Rostedt
2026-03-13 14:02 ` Vineeth Remanan Pillai
2026-03-17 16:00 ` Steven Rostedt
2026-03-17 16:02 ` Mathieu Desnoyers
2026-03-18 10:58 ` Vineeth Remanan Pillai
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=f7to6ktnjxi.fsf@redhat.com \
--to=aconole@redhat.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dev@openvswitch.org \
--cc=echaudro@redhat.com \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=horms@kernel.org \
--cc=i.maximets@ovn.org \
--cc=jmaloy@redhat.com \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sctp@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=liuhangbin@gmail.com \
--cc=lucien.xin@gmail.com \
--cc=marcelo.leitner@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sdf@fomichev.me \
--cc=skhawaja@google.com \
--cc=tipc-discussion@lists.sourceforge.net \
--cc=vineeth@bitbyteword.org \
/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.