Linux Trace Kernel
 help / color / mirror / Atom feed
From: Nam Cao <namcao@linutronix.de>
To: Gabriele Monaco <gmonaco@redhat.com>,
	John Ogness <john.ogness@linutronix.de>,
	Steven Rostedt <rostedt@goodmis.org>
Cc: Tomas Glozar <tglozar@redhat.com>,
	Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
	bpf@vger.kernel.org, Wen Yang <wen.yang@linux.dev>,
	Tobias Schaffner <tobias.schaffner@siemens.com>,
	Viktor Malik <vmalik@redhat.com>
Subject: Re: [PATCH v2 10/15] tools/rv: Add BPF monitors
Date: Thu, 22 Oct 2026 10:25:13 +0200	[thread overview]
Message-ID: <871p9ita52.fsf@yellow.woof> (raw)
In-Reply-To: <f147fa9dfc553767ce92802b66723a85cf804e46.camel@redhat.com>

Gabriele Monaco <gmonaco@redhat.com> writes:
> Well, this would be yet another hybrid requiring BPF monitors registration in
> the kernel like I proposed in the RFC [1], which was the main point of
> contention (that fully shared reactors and sysfs interface, by the way).
>
> For this I would argue, though, that such monitors would be BPF just on paper,
> we wouldn't be able to use many advantages BPF provides (e.g. BPF maps).
>
> The current implementation already shares the header with in-kernel monitors, so
> the actual logic is shared. What isn't shared is the storage type and some glue
> around it.
> I used BPF maps because they offer some nice flexibility especially around per-
> task and per-obj monitors. On top of using more battle tested code.
> I would like to keep that.
>
> Besides, we'd need to be extra careful on controlling the callers. Right now
> handlers are static, so it's easier to make sure no rogue caller messes up with
> monitoring.
>
> What else definitely isn't shared, which is the main point of this whole
> conversation, is trace events.
> Those could be kfuncs. And no matter what you do, BPF monitors will need to
> share the trace events (unlike in-kernel that have separate events per monitor).
>
> In short, I don't think this would be easy to achieve and wouldn't earn us that
> much. (Plus I'd lose the hardly earned Alexei's blessing ;) )
>
> What do you think?

What about we refactor the in-kernel monitors' trace events into a
single one. I am picturing two functions for ALL classes and ALL
monitors:

    void rv_error(const char *monitor_name, const char *message);
    void rv_event(const char *monitor_name, const char *message);

which trigger the tracepoints. And we make those kfuncs. This allows
sharing trace events between in-kernel monitors and BPF monitors.

Then everything else (kernel reactors, users, perhaps even eBPF reactors
in the future) hook into those tracepoints.

Nam

  parent reply	other threads:[~2026-10-22  8:25 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01 15:20 [PATCH v2 00/15] rv: Add support for BPF monitors Gabriele Monaco
2026-10-01 15:20 ` [PATCH v2 01/15] sched: Add task enqueue/dequeue trace points Gabriele Monaco
2026-10-01 15:49   ` Peter Zijlstra
2026-10-02  7:09     ` Gabriele Monaco
2026-10-02 10:29       ` Peter Zijlstra
2026-10-02 11:55         ` Gabriele Monaco
2026-10-02 19:18           ` Peter Zijlstra
2026-10-02 19:40             ` Gabriele Monaco
2026-10-04  7:57             ` Steven Rostedt
2026-10-12 11:54               ` Peter Zijlstra
2026-10-04  7:45         ` Steven Rostedt
2026-10-12 11:49           ` Peter Zijlstra
2026-10-02  0:42   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 02/15] tools/rv: Skip empty pid error in selftest if command failed Gabriele Monaco
2026-10-02  0:42   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 03/15] rv: Refactor da_trace() functions to get strings internally Gabriele Monaco
2026-10-01 15:20 ` [PATCH v2 04/15] rv: Cast result of model_get_*_name() Gabriele Monaco
2026-10-13  6:14   ` Nam Cao
2026-10-13  8:15     ` Gabriele Monaco
2026-10-14  9:52     ` Gabriele Monaco
2026-10-14 10:02       ` Nam Cao
2026-10-01 15:20 ` [PATCH v2 05/15] tools/rv: Move argument parsing from in_kernel to utils Gabriele Monaco
2026-10-02  0:25   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 06/15] tools/build: Add a feature test for bpftool-btf Gabriele Monaco
2026-10-01 15:20 ` [PATCH v2 07/15] tools/rv: Implement BPF monitor discovery and listing Gabriele Monaco
2026-10-01 15:40   ` sashiko-bot
2026-10-02  0:42   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 08/15] tools/rv: Implement BPF monitor loading and tracing Gabriele Monaco
2026-10-01 15:41   ` sashiko-bot
2026-10-02  0:43   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 09/15] tools/rv: Copy stripped bpf_atomic.h from libarena Gabriele Monaco
2026-10-02  0:42   ` bot+bpf-ci
2026-10-07 12:59   ` Nam Cao
2026-10-08  9:00     ` Gabriele Monaco
2026-10-08 11:16       ` Nam Cao
2026-10-09 10:09         ` Gabriele Monaco
2026-10-11  0:43           ` Steven Rostedt
2026-10-12  7:43             ` Gabriele Monaco
2026-10-01 15:20 ` [PATCH v2 10/15] tools/rv: Add BPF monitors Gabriele Monaco
2026-10-01 15:55   ` sashiko-bot
2026-10-02  0:43   ` bot+bpf-ci
2026-10-06 13:29   ` Alexei Starovoitov
2026-10-08  9:54     ` Gabriele Monaco
2026-10-16 18:32       ` Alexei Starovoitov
2026-10-16 19:20         ` John Ogness
2026-10-17 10:42           ` Gabriele Monaco
2026-10-17 15:17             ` John Ogness
2026-10-17 16:09               ` Alexei Starovoitov
2026-10-17 16:56                 ` John Ogness
2026-10-17 23:25                   ` Alexei Starovoitov
2026-10-18 12:10                     ` John Ogness
2026-10-19  9:05                       ` Gabriele Monaco
2026-10-19  9:27                         ` John Ogness
2026-10-19  9:46                           ` Tomas Glozar
2026-10-19 13:16                           ` Steven Rostedt
2026-10-19 10:01                         ` Tomas Glozar
2026-10-19 10:43                           ` Gabriele Monaco
2026-10-19 11:05                             ` Tomas Glozar
2026-10-19 12:47                               ` Gabriele Monaco
2026-10-19 13:05                                 ` Tomas Glozar
2026-10-21  7:26                                   ` Nam Cao
2026-10-19 13:02                               ` John Ogness
2026-10-20  7:29                                 ` Gabriele Monaco
2026-10-21  8:01                                   ` Nam Cao
2026-10-21 11:54                                     ` Gabriele Monaco
2026-10-21 13:48                                       ` Steven Rostedt
2026-10-21 15:24                                         ` Gabriele Monaco
2026-10-21 16:47                                           ` John Ogness
2026-10-22  6:46                                             ` Gabriele Monaco
2026-10-22  8:15                                               ` John Ogness
2026-10-22 10:09                                                 ` Gabriele Monaco
2026-10-22 11:34                                                   ` Gabriele Monaco
2026-10-22  8:25                                               ` Nam Cao [this message]
2026-10-19  8:33               ` Gabriele Monaco
2026-10-19  9:10                 ` John Ogness
2026-10-19 10:48                   ` Gabriele Monaco
2026-10-19 12:51                   ` Nam Cao
2026-10-19 13:14                     ` John Ogness
2026-10-21  8:13                       ` Nam Cao
2026-10-21  8:46                         ` Gabriele Monaco
2026-10-21 11:12                           ` Nam Cao
2026-10-21 15:55                             ` Gabriele Monaco
2026-10-17 10:48         ` Gabriele Monaco
2026-10-01 15:20 ` [PATCH v2 11/15] tools/rv: Define CONFIG_X86_64 statically for " Gabriele Monaco
2026-10-01 15:49   ` sashiko-bot
2026-10-01 15:20 ` [PATCH v2 12/15] tools/rv: Add reactors support to " Gabriele Monaco
2026-10-01 15:57   ` sashiko-bot
2026-10-02  0:43   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 13/15] verification/rvgen: Add support for " Gabriele Monaco
2026-10-02  0:25   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 14/15] tools/rv: Add selftest for rv bpf monitors Gabriele Monaco
2026-10-01 16:03   ` sashiko-bot
2026-10-02  0:43   ` bot+bpf-ci
2026-10-01 15:20 ` [PATCH v2 15/15] verification/rvgen: Add selftest for rvgen -b Gabriele Monaco

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=871p9ita52.fsf@yellow.woof \
    --to=namcao@linutronix.de \
    --cc=alexei.starovoitov@gmail.com \
    --cc=bpf@vger.kernel.org \
    --cc=gmonaco@redhat.com \
    --cc=john.ogness@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglozar@redhat.com \
    --cc=tobias.schaffner@siemens.com \
    --cc=vmalik@redhat.com \
    --cc=wen.yang@linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox