Re: [PATCH v4 bpf-next 0/4] libbpf: add perf buffer abstraction and API
From: Andrii Nakryiko <hidden>
Date: 2019-07-03 16:27:32
Also in:
bpf
On Wed, Jul 3, 2019 at 2:36 AM Daniel Borkmann [off-list ref] wrote:
On 06/30/2019 08:51 AM, Andrii Nakryiko wrote:quoted
This patchset adds a high-level API for setting up and polling perf buffers associated with BPF_MAP_TYPE_PERF_EVENT_ARRAY map. Details of APIs are described in corresponding commit. Patch #1 adds a set of APIs to set up and work with perf buffer. Patch #2 enhances libbpf to support auto-setting PERF_EVENT_ARRAY map size. Patch #3 adds test. Patch #4 converts bpftool map event_pipe to new API. v3->v4: - fixed bpftool event_pipe cmd error handling (Jakub); v2->v3: - added perf_buffer__new_raw for more low-level control; - converted bpftool map event_pipe to new API (Daniel); - fixed bug with error handling in create_maps (Song); v1->v2: - add auto-sizing of PERF_EVENT_ARRAY maps; Andrii Nakryiko (4): libbpf: add perf buffer API libbpf: auto-set PERF_EVENT_ARRAY size to number of CPUs selftests/bpf: test perf buffer API tools/bpftool: switch map event_pipe to libbpf's perf_buffer tools/bpf/bpftool/map_perf_ring.c | 201 +++------ tools/lib/bpf/libbpf.c | 397 +++++++++++++++++- tools/lib/bpf/libbpf.h | 49 +++ tools/lib/bpf/libbpf.map | 4 + .../selftests/bpf/prog_tests/perf_buffer.c | 94 +++++ .../selftests/bpf/progs/test_perf_buffer.c | 29 ++ 6 files changed, 630 insertions(+), 144 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/perf_buffer.c create mode 100644 tools/testing/selftests/bpf/progs/test_perf_buffer.cHm, set looks good, but this does not apply cleanly. Please rebase against bpf-next and resubmit. Please also update tools/lib/bpf/README.rst with regards to the perf_buffer__ prefix. While at it, you could also address Jakub's comment.
Yeah, I forgot to mention that in cover letter: this patchset is using APIs added in my other patch set (tracing APIs), so that one has to go in first. I'll wait for it to land and will update and post v5, updating README and initializing ops (Jakub's feedback). Thanks!
Thanks, Daniel