Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1253443

Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY maps trace data output when perf sampling

From "Wangnan (F)" <wangnan0@huawei.com>
Newsgroups linux.kernel
Subject Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY maps trace data output when perf sampling
Date 2015-10-22 05:00 +0200
Message-ID <qmegF-5TG-3@gated-at.bofh.it> (permalink)
References (6 earlier) <qm25P-4NY-11@gated-at.bofh.it> <qm2fv-5eA-3@gated-at.bofh.it> <qm2fw-5eA-9@gated-at.bofh.it> <qm3lg-6Rp-33@gated-at.bofh.it> <qm4U3-zk-27@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw



On 2015/10/22 0:57, Peter Zijlstra wrote:
> On Wed, Oct 21, 2015 at 11:06:47PM +0800, pi3orama wrote:
>>> So explain; how does this eBPF stuff work.
>> I think I get your point this time, and let me explain the eBPF stuff to you.
>>
>> You are aware that BPF programmer can break the system in this way:
>>
>> A=get_non_local_perf_event()
>> perf_event_read_local(A)
>> BOOM!
>>
>> However the above logic is impossible because BPF program can't work this
>> way.
>>
>> First of all, it is impossible for a BPF program directly invoke a
>> kernel function.  Doesn't like kernel module, BPF program can only
>> invoke functions designed for them, like what this patch does. So the
>> ability of BPF programs is strictly restricted by kernel. If we don't
>> allow BPF program call perf_event_read_local() across core, we can
>> check this and return error in function we provide for them.
>>
>> Second: there's no way for a BPF program directly access a perf event.
>> All perf events have to be wrapped by a map and be accessed by BPF
>> functions described above. We don't allow BPF program fetch array
>> element from that map. So pointers of perf event is safely protected
>> from BPF program.
>>
>> In summary, your either-or logic doesn't hold in BPF world. A BPF
>> program can only access perf event in a highly restricted way. We
>> don't allow it calling perf_event_read_local() across core, so it
>> can't.
> Urgh, that's still horridly inconsistent. Can we please come up with a
> consistent interface to perf?

BPF program and kernel module are two different worlds as I said before.

I don't think making them to share a common interface is a good idea
because such sharing will give BPF programs too much freedom than it
really need, then it will be hard prevent them to do something bad.
If we really need kernel interface, I think what we need is kernel
module, not BPF program.

Thank you.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY maps trace data output when perf sampling Kaixu Xia <xiakaixu@huawei.com> - 2015-10-20 09:30 +0200
  Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Alexei Starovoitov <ast@plumgrid.com> - 2015-10-21 01:00 +0200
    Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 11:20 +0200
      Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling xiakaixu <xiakaixu@huawei.com> - 2015-10-21 12:40 +0200
        Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 13:40 +0200
          Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-21 14:00 +0200
            Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 14:20 +0200
              Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-21 15:50 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 16:00 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY maps trace data output when perf sampling pi3orama <pi3orama@163.com> - 2015-10-21 16:10 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 16:10 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY maps trace data output when perf sampling pi3orama <pi3orama@163.com> - 2015-10-21 17:20 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 19:00 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Alexei Starovoitov <ast@plumgrid.com> - 2015-10-21 23:30 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-22 11:10 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-22 12:40 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-23 15:00 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-23 17:20 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling xiakaixu <xiakaixu@huawei.com> - 2015-10-27 07:50 +0100
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-22 05:00 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Ingo Molnar <mingo@kernel.org> - 2015-10-22 09:50 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-22 10:00 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-22 11:30 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-22 04:10 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Alexei Starovoitov <ast@plumgrid.com> - 2015-10-22 05:10 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-22 05:20 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Alexei Starovoitov <ast@plumgrid.com> - 2015-10-22 05:30 +0200
                Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-22 11:50 +0200
      Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-21 13:40 +0200
        Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling Peter Zijlstra <peterz@infradead.org> - 2015-10-21 14:00 +0200
          Re: [PATCH V5 1/1] bpf: control events stored in PERF_EVENT_ARRAY  maps trace data output when perf sampling "Wangnan (F)" <wangnan0@huawei.com> - 2015-10-21 14:10 +0200

csiph-web