On Wed, Jun 26, 2019 at 4:55 AM Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote: > > Andrii Nakryiko <andriin@xxxxxx> writes: > > > 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 supprot auto-setting PERF_EVENT_ARRAY map size. > > Patch #3 adds test. > > Having this in libbpf is great! Do you have a usage example of how a > program is supposed to read events from the buffer? This is something we > would probably want to add to the XDP tutorial Did you check patch #3 with selftest? It's essentially an end-to-end example of how to set everything up and process data (in my case it's just simple int being sent as a sample, but it's exactly the same with more complicated structs). I didn't bother to handle lost samples notification, but it's just another optional callback with a single counter denoting how many samples were dropped. Let me know if it's still unclear. > > -Toke