Messages in this thread | | | Date | Wed, 01 Jul 2015 19:48:25 -0700 | From | Alexei Starovoitov <> | Subject | Re: [RFC PATCH 0/5] Make eBPF programs output data to perf event |
| |
On 7/1/15 4:58 AM, Peter Zijlstra wrote: > > But why create a separate trace buffer, it should go into the regular > perf buffer.
+1
I think +static char __percpu *perf_extra_trace_buf[PERF_NR_CONTEXTS]; is redundant. It adds quite a bit of unnecessary complexity to the whole patch set.
Also the call to bpf_output_sample() is not effective unless program returns 1. It's a confusing user interface.
Also you cannot ever do: BPF_FUNC_probe_read, + BPF_FUNC_output_sample, BPF_FUNC_ktime_get_ns, new functions must be added to the end.
Why not just do: perf_trace_buf_prepare() + perf_trace_buf_submit() from the helper? No changes to current code. No need to call __get_data_size() and other overhead. The helper can be called multiple times from the same program. imo much cleaner.
Also how about calling this helper: bpf_trace_buf_submit(void *stack_ptr, int size) ? bpf_output_sample, I think, is odd name. It's not a sample. May be other name?
| |