Re: [PATCH] tracing/user_events: Run BPF program if attached

From: Alexei Starovoitov
Date: Tue May 09 2023 - 11:24:47 EST


On Mon, May 8, 2023 at 9:38 AM Beau Belgrave <beaub@xxxxxxxxxxxxxxxxxxx> wrote:
>
> Programs that utilize user_events today only get the event payloads via
> perf or ftrace when writing event data. When BPF programs are attached
> to tracepoints created by user_events the BPF programs do not get run
> even though the attach succeeds. This causes confusion by the users of
> the programs, as they expect the data to be available via BPF programs
> they write. We have several projects that have hit this and requested
> BPF program support when publishing data via user_events from their
> user processes in production.
>
> Swap out perf_trace_buf_submit() for perf_trace_run_bpf_submit() to
> ensure BPF programs that are attached are run in addition to writing to
> perf or ftrace buffers. This requires no changes to the BPF infrastructure
> and only utilizes the GPL exported function that modules and other
> components may use for the same purpose. This keeps user_events consistent
> with how other kernel, modules, and probes expose tracepoint data to allow
> attachment of a BPF program.

Sorry, I have to keep my Nack here.

I see no practical use case for bpf progs to be connected to user events.

There must be a different way to solve your user needs
and this is not bpf.