Skip to content

bpf_perf_event_output helper

Alexei Starovoitov lkml netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest3 patches 15 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3perf: pad raw data samples automaticallykernel/events/core.c+10 -50 replies
2/3bpf: introduce bpf_perf_event_output() helperinclude/uapi/linux/bpf.h include/uapi/linux/perf_event.h kernel/bpf/arraymap.c +2 more+62 -114 replies
3/3samples: bpf: add bpf_perf_event_output examplesamples/bpf/Makefile samples/bpf/bpf_helpers.h samples/bpf/trace_output_kern.c +1 more+236 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH net-next 0/3] bpf_perf_event_output helper

Over the last year there were multiple attempts to let eBPF programs output data into perf events by He Kuang and Wangnan.
The last one was:
https://lkml.org/lkml/2015/7/20/736
It was almost perfect with exception that all bpf programs would sent data into one global perf_event.
This patch set takes different approach by letting user space open independent PERF_COUNT_SW_BPF_OUTPUT events, so that program output won't collide.

Wangnan is working on corresponding perf patches.

Alexei Starovoitov (3):
perf: pad raw data samples automatically
bpf: introduce bpf_perf_event_output() helper
samples: bpf: add bpf_perf_event_output example

 include/uapi/linux/bpf.h        |   11 +++
 include/uapi/linux/perf_event.h |    1 +
 kernel/bpf/arraymap.c           |    2 +
 kernel/bpf/verifier.c           |    3 +-
 kernel/events/core.c            |   15 ++-
 kernel/trace/bpf_trace.c        |   46 +++++++++
 samples/bpf/Makefile            |    7 ++
 samples/bpf/bpf_helpers.h       |    2 +
 samples/bpf/trace_output_kern.c |   31 +++++++
 samples/bpf/trace_output_user.c |  196 +++++++++++++++++++++++++++++++++++++++
 10 files changed, 308 insertions(+), 6 deletions(-)
 create mode 100644 samples/bpf/trace_output_kern.c
 create mode 100644 samples/bpf/trace_output_user.c
Signature · 1 line
1.7.9.5