Skip to content

Commit ae299d6

Browse files
bjackmankernel-patches-bot
authored andcommitted
libbpf: Expose libbpf ringbufer epoll_fd
This provides a convenient perf ringbuf -> libbpf ringbuf migration path for users of external polling systems. It is analogous to perf_buffer__epoll_fd. Signed-off-by: Brendan Jackman <[email protected]>
1 parent 0bb7ca0 commit ae299d6

File tree

3 files changed

+8
-0
lines changed

3 files changed

+8
-0
lines changed

tools/lib/bpf/libbpf.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,7 @@ LIBBPF_API int ring_buffer__add(struct ring_buffer *rb, int map_fd,
536536
ring_buffer_sample_fn sample_cb, void *ctx);
537537
LIBBPF_API int ring_buffer__poll(struct ring_buffer *rb, int timeout_ms);
538538
LIBBPF_API int ring_buffer__consume(struct ring_buffer *rb);
539+
LIBBPF_API int ring_buffer__epoll_fd(struct ring_buffer *rb);
539540

540541
/* Perf buffer APIs */
541542
struct perf_buffer;

tools/lib/bpf/libbpf.map

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,4 +348,5 @@ LIBBPF_0.3.0 {
348348
btf__new_split;
349349
xsk_setup_xdp_prog;
350350
xsk_socket__update_xskmap;
351+
ring_buffer__epoll_fd;
351352
} LIBBPF_0.2.0;

tools/lib/bpf/ringbuf.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,3 +282,9 @@ int ring_buffer__poll(struct ring_buffer *rb, int timeout_ms)
282282
}
283283
return cnt < 0 ? -errno : res;
284284
}
285+
286+
/* Get an fd that can be used to sleep until data is available in the ring(s) */
287+
int ring_buffer__epoll_fd(struct ring_buffer *rb)
288+
{
289+
return rb->epoll_fd;
290+
}

0 commit comments

Comments
 (0)