On Wed, Jul 3, 2019 at 2:36 AM Daniel Borkmann <daniel@xxxxxxxxxxxxx> wrote: > > On 06/30/2019 08:51 AM, Andrii Nakryiko wrote: > > 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.c > > Hm, 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