[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <68026672df030_1d380329421@willemb.c.googlers.com.notmuch>
Date: Fri, 18 Apr 2025 10:49:22 -0400
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: Song Liu <songliubraving@...a.com>,
Willem de Bruijn <willemdebruijn.kernel@...il.com>
Cc: Song Liu <songliubraving@...a.com>,
Paolo Abeni <pabeni@...hat.com>,
Breno Leitao <leitao@...ian.org>,
Steven Rostedt <rostedt@...dmis.org>,
Masami Hiramatsu <mhiramat@...nel.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
"David S. Miller" <davem@...emloft.net>,
David Ahern <dsahern@...nel.org>,
Eric Dumazet <edumazet@...gle.com>,
"kuba@...nel.org" <kuba@...nel.org>,
Simon Horman <horms@...nel.org>,
"kuniyu@...zon.com" <kuniyu@...zon.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-trace-kernel@...r.kernel.org" <linux-trace-kernel@...r.kernel.org>,
"yonghong.song@...ux.dev" <yonghong.song@...ux.dev>,
"song@...nel.org" <song@...nel.org>,
Kernel Team <kernel-team@...a.com>
Subject: Re: [PATCH net-next] udp: Add tracepoint for udp_sendmsg()
Song Liu wrote:
>
>
> > On Apr 17, 2025, at 8:48 AM, Willem de Bruijn <willemdebruijn.kernel@...il.com> wrote:
> >
> > Song Liu wrote:
> >> Hi Paolo,
> >>
> >>> On Apr 17, 2025, at 6:17 AM, Paolo Abeni <pabeni@...hat.com> wrote:
> >>>
> >>> On 4/17/25 1:34 PM, Breno Leitao wrote:
> >>>> On Thu, Apr 17, 2025 at 08:57:24AM +0200, Paolo Abeni wrote:
> >>>>> On 4/16/25 9:23 PM, Breno Leitao wrote:
> >>>>>> Add a lightweight tracepoint to monitor UDP send message operations,
> >>>>>> similar to the recently introduced tcp_sendmsg_locked() trace event in
> >>>>>> commit 0f08335ade712 ("trace: tcp: Add tracepoint for
> >>>>>> tcp_sendmsg_locked()")
> >>>>>
> >>>>> Why is it needed? what would add on top of a plain perf probe, which
> >>>>> will be always available for such function with such argument, as the
> >>>>> function can't be inlined?
> >>>>
> >>>> Why this function can't be inlined?
> >>>
> >>> Because the kernel need to be able find a pointer to it:
> >>>
> >>> .sendmsg = udp_sendmsg,
> >>>
> >>> I'll be really curious to learn how the compiler could inline that.
> >>
> >> It is true that functions that are only used via function pointers
> >> will not be inlined by compilers (at least for those we have tested).
> >> For this reason, we do not worry about functions in various
> >> tcp_congestion_ops. However, udp_sendmsg is also called directly
> >> by udpv6_sendmsg, so it can still get inlined by LTO.
> >>
> >> Thanks,
> >> Song
> >>
> >
> > I would think that hitting this tracepoint for ipv6_addr_v4mapped
> > addresses is unintentional and surprising, as those would already
> > hit udpv6_sendmsg.
>
> It is up to the user to decide how these tracepoints should be
> used. For example, the user may only be interested in
> udpv6_sendmsg => udp_sendmsg case. Without a tracepoint, the user
> has to understand whether the compiler inlined this function.
>
> >
> > On which note, any IPv4 change to UDP needs an equivalent IPv6 one.
>
> Do you mean we need to also add tracepoints for udpv6_sendmsg?
If there is consensus that a tracepoint at this point is valuable,
then it should be supported equally for IPv4 and IPv6.
That holds true for all such hooks. No IPv4 only.
Powered by blists - more mailing lists