On 7/5/19 11:02 PM, 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. > Patch #5 updates README to mention perf_buffer_ prefix. > > v5->v6: > - fix C99 for loop variable initialization usage (Yonghong); > v4->v5: > - initialize perf_buffer_raw_opts in bpftool map event_pipe (Jakub); > - add perf_buffer_ to README; > 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 (5): > 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 > libbpf: add perf_buffer_ prefix to README > > tools/bpf/bpftool/map_perf_ring.c | 201 +++------ > tools/lib/bpf/README.rst | 3 +- > 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 | 25 ++ > 7 files changed, 628 insertions(+), 145 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 With a minor comment on patch 3/5 in a different thread, LGTM. Ack for the whole series. Acked-by: Yonghong Song <yhs@xxxxxx>