Re: [PATCH RFC net-next] trace: tcp: Add tracepoint for tcp_cwnd_reduction()
From: Steven Rostedt
Date: Wed Jan 22 2025 - 09:56:17 EST
On Wed, 22 Jan 2025 01:39:42 -0800
Breno Leitao <leitao@xxxxxxxxxx> wrote:
> Right, DECLARE_TRACE would solve my current problem, but, a056a5bed7fa
> ("sched/debug: Export the newly added tracepoints") says "BPF doesn't
> have infrastructure to access these bare tracepoints either.".
>
> Does BPF know how to attach to this bare tracepointers now?
>
> On the other side, it seems real tracepoints is getting more pervasive?
> So, this current approach might be OK also?
>
> https://lore.kernel.org/bpf/20250118033723.GV1977892@ZenIV/T/#m4c2fb2d904e839b34800daf8578dff0b9abd69a0
Thanks for the pointer. I didn't know this discussion was going on. I just
asked to attend if this gets accepted. I'm only a 6 hour drive from
Montreal anyway.
>
> > You can see its use in include/trace/events/sched.h
>
> I suppose I need to export the tracepointer with
> EXPORT_TRACEPOINT_SYMBOL_GPL(), right?
For modules to use them directly, yes. But there's other ways too.
>
> I am trying to hack something as the following, but, I struggled to hook
> BPF into it.
Maybe you can use the iterator to search for the tracepoint.
#include <linux/tracepoint.h>
static void fct(struct tracepoint *tp, void *priv)
{
if (!tp->name || strcmp(tp->name, "<tracepoint_name>") != 0)
return 0;
// attach to tracepoint tp
}
[..]
for_each_kernel_tracepoint(fct, NULL);
This is how LTTng hooks to tracepoints.
-- Steve