mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Gabriele Monaco <gmonaco@redhat.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
	linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
	bpf@vger.kernel.org, Steven Rostedt <rostedt@goodmis.org>
Cc: Nam Cao <namcao@linutronix.de>, Wen Yang <wen.yang@linux.dev>,
	Tobias Schaffner <tobias.schaffner@siemens.com>,
	Viktor Malik <vmalik@redhat.com>,
	John Ogness <john.ogness@linutronix.de>
Subject: Re: [PATCH v2 10/15] tools/rv: Add BPF monitors
Date: Sat, 17 Oct 2026 10:48:30 +0000	[thread overview]
Message-ID: <5A1AB76E-E338-4B88-8FDD-947BA0C5A294@redhat.com> (raw)
In-Reply-To: <DM6H7SK4YZ7A.F0MM6C0I77OR@gmail.com>



Il 16 ottobre 2026 18:32:44 UTC, Alexei Starovoitov <alexei.starovoitov@gmail.com> ha scritto:
>On Thu, Oct 08, 2026 at 11:54 AM Gabriele Monaco <gmonaco@redhat.com> wrote:
>> Reactors in this patch use bpf_printk(), which is in fact a trace_printk()
>> instead of a real printk, is there a technical limitation forbidding us to
>> create a kfunc using some flavour of printk_deferred()? Or am I missing an
>> existing one? (this need was brought up by John, Cc'd here)
>
>No technical limitation, and there is no such kfunc today.
>printk_deferred() is a lockless store into the ring buffer plus irq_work.
>It's ok in any context where tracing progs run.
>The closest we have is bpf_stream_vprintk(). That's stdout/stderr of
>the prog. User space has to read it.
>rv tool is around for as long as the monitor is loaded, so it can read
>the stream and log it anywhere like /dev/kmsg.
>If the message has to reach the console when user space cannot run
>then the kfunc makes sense, but using bpf_stream is imo much cleaner.
>

Thanks for the answer, I'd expect a mildly higher overhead in doing that, but since it's only on violations we can probably accept it.

I'm going to have a look at that. User space should be able to run for at least most models, I'd say, but I'm not sure how fast it can pick up.

>> Not needed in this patch but potentially required for more complex monitors. In
>> kernel, when timers are required, we allow monitors to use hrtimers (precise but
>> heavy), or the timer_wheel (lightweight but less precise).
>> I'm not aware of any wrapper of the wheel in BPF, but I think a few kfuncs for
>> these could be useful, in general, also for other programs needing a lot of
>> timer instances or simply light timeouts.
>> What do you think?
>
>I don't think it's needed.
>bpf_timer is hrtimer only, but hrtimer vs wheel is not where the cost is.
>bpf_timer_start() cannot call hrtimer_start() directly.
>bpf_async_schedule_op() does kmalloc_nolock()
>and irq_work_queue() instead.
>I don't think timer wheel will help.
>

Alright, I'm going to keep that in mind once I get to work with timed automata.

Thanks,
Gabriele


  parent reply	other threads:[~2026-10-17 11:03 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01 15:20 [PATCH v2 00/15] rv: Add support for " 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-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-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-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
2026-10-23 14:43                                                 ` Gabriele Monaco
2026-10-23 15:00                                                   ` Nam Cao
2026-10-23 16:13                                                     ` Gabriele Monaco
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 [this message]
2026-10-01 15:20 ` [PATCH v2 11/15] tools/rv: Define CONFIG_X86_64 statically for " Gabriele Monaco
2026-10-01 15:20 ` [PATCH v2 12/15] tools/rv: Add reactors support to " Gabriele Monaco
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-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=5A1AB76E-E338-4B88-8FDD-947BA0C5A294@redhat.com \
    --to=gmonaco@redhat.com \
    --cc=alexei.starovoitov@gmail.com \
    --cc=bpf@vger.kernel.org \
    --cc=john.ogness@linutronix.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=namcao@linutronix.de \
    --cc=rostedt@goodmis.org \
    --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

all inboxes | Powered by JetHome®