On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote:
> > > nmi checks for bpf_prog_active==0. See bpf_overflow_handler. > > yuck yuck yuck.. That's horrific :-( That means the whole BPF crud is > > unreliable and events can go randomly missing. > > bpf_prog_active is the mechanism to workaround non-reentrant pieces of the > kernel. 'the kernel' or 'bpf' ? perf has a recursion counter per context (task,softirq,hardirq,nmi) and that ensures that perf doesn't recurse in on itself while allowing the nesting of these contexts. But if BPF itself is not able to deal with such nesting that won't work of course.