On Thu, 17 Jul 2025 07:57:27 -0700 Alexei Starovoitov <alexei.starovoi...@gmail.com> wrote:
> I still don't understand what problem is being solved. > As current tracepoint code stands there is no issue with it at all > on PREEMPT_RT from bpf pov. > bpf progs that attach to tracepoints are not sleepable. > They don't call rt_spinlock either. > Recognizing tracepoints that can sleep/fault and allow > sleepable bpf progs there is on our to do list, > but afaik it doesn't need any changes to tracepoint infra. > There is no need to replace existing preempt_disable wrappers > with sleepable srcu_fast or anything else. From the PREEMPT_RT point of view, it wants BPF to be preemptable. It may stop migration, but if someone adds a long running BPF program (when I say long running, it could be anything more than 10us), and it executes on a low priority task. If that BPF program is not preemptable it can delay a high priority task from running. That defeats the purpose of PREEMPT_RT. If this is unsolvable, then we will need to make PREEMPT_RT and BPF mutually exclusive in the configs. -- Steve