Messages in this thread | | | Date | Wed, 21 Oct 2015 16:09:21 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY maps trace data output when perf sampling |
| |
On Wed, Oct 21, 2015 at 10:01:46PM +0800, pi3orama wrote: > > 在 2015年10月21日,下午9:49,Peter Zijlstra <peterz@infradead.org> 写道: > > > >> On Wed, Oct 21, 2015 at 09:42:12PM +0800, Wangnan (F) wrote: > >> How can an eBPF program access a !local event: > >> > >> when creating perf event array we don't care which perf event > >> is for which CPU, so perf program can access any perf event in > >> that array. > > > > So what is stopping the eBPF thing from calling perf_event_read_local() > > on a !local event and triggering a kernel splat? > > I can understand the perf_event_read_local() case, but I really can't understand > what is stopping us to write to an atomic field belong to a !local perf event. > Could you please give a further explanation?
I simply do not get how this eBPF stuff works.
Either I have access to !local events and I can hand one to perf_event_read_local() and cause badness, or I do not have access to !local events and the whole 'soft enable/disable' thing is simple.
They cannot be both true.
So explain; how does this eBPF stuff work.
| |