mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-03 23:29:06 +08:00
libbpf: Deprecate bpf_perf_event_read_simple() API
With perf_buffer__poll() and perf_buffer__consume() APIs available, there is no reason to expose bpf_perf_event_read_simple() API to users. If users need custom perf buffer, they could re-implement the function. Mark bpf_perf_event_read_simple() and move the logic to a new static function so it can still be called by other functions in the same file. [0] Closes: https://github.com/libbpf/libbpf/issues/310 Signed-off-by: Christy Lee <christylee@fb.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20211229204156.13569-1-christylee@fb.com
This commit is contained in:
committed by
Andrii Nakryiko
parent
0171976dc5
commit
2e52e09bc2
22
src/libbpf.c
22
src/libbpf.c
@@ -10676,10 +10676,10 @@ struct bpf_link *bpf_map__attach_struct_ops(const struct bpf_map *map)
|
|||||||
return link;
|
return link;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum bpf_perf_event_ret
|
static enum bpf_perf_event_ret
|
||||||
bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
|
perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
|
||||||
void **copy_mem, size_t *copy_size,
|
void **copy_mem, size_t *copy_size,
|
||||||
bpf_perf_event_print_t fn, void *private_data)
|
bpf_perf_event_print_t fn, void *private_data)
|
||||||
{
|
{
|
||||||
struct perf_event_mmap_page *header = mmap_mem;
|
struct perf_event_mmap_page *header = mmap_mem;
|
||||||
__u64 data_head = ring_buffer_read_head(header);
|
__u64 data_head = ring_buffer_read_head(header);
|
||||||
@@ -10724,6 +10724,12 @@ bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
|
|||||||
return libbpf_err(ret);
|
return libbpf_err(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((alias("perf_event_read_simple")))
|
||||||
|
enum bpf_perf_event_ret
|
||||||
|
bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
|
||||||
|
void **copy_mem, size_t *copy_size,
|
||||||
|
bpf_perf_event_print_t fn, void *private_data);
|
||||||
|
|
||||||
struct perf_buffer;
|
struct perf_buffer;
|
||||||
|
|
||||||
struct perf_buffer_params {
|
struct perf_buffer_params {
|
||||||
@@ -11132,10 +11138,10 @@ static int perf_buffer__process_records(struct perf_buffer *pb,
|
|||||||
{
|
{
|
||||||
enum bpf_perf_event_ret ret;
|
enum bpf_perf_event_ret ret;
|
||||||
|
|
||||||
ret = bpf_perf_event_read_simple(cpu_buf->base, pb->mmap_size,
|
ret = perf_event_read_simple(cpu_buf->base, pb->mmap_size,
|
||||||
pb->page_size, &cpu_buf->buf,
|
pb->page_size, &cpu_buf->buf,
|
||||||
&cpu_buf->buf_size,
|
&cpu_buf->buf_size,
|
||||||
perf_buffer__process_record, cpu_buf);
|
perf_buffer__process_record, cpu_buf);
|
||||||
if (ret != LIBBPF_PERF_EVENT_CONT)
|
if (ret != LIBBPF_PERF_EVENT_CONT)
|
||||||
return ret;
|
return ret;
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -1026,6 +1026,7 @@ LIBBPF_API int perf_buffer__buffer_fd(const struct perf_buffer *pb, size_t buf_i
|
|||||||
typedef enum bpf_perf_event_ret
|
typedef enum bpf_perf_event_ret
|
||||||
(*bpf_perf_event_print_t)(struct perf_event_header *hdr,
|
(*bpf_perf_event_print_t)(struct perf_event_header *hdr,
|
||||||
void *private_data);
|
void *private_data);
|
||||||
|
LIBBPF_DEPRECATED_SINCE(0, 8, "use perf_buffer__poll() or perf_buffer__consume() instead")
|
||||||
LIBBPF_API enum bpf_perf_event_ret
|
LIBBPF_API enum bpf_perf_event_ret
|
||||||
bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
|
bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
|
||||||
void **copy_mem, size_t *copy_size,
|
void **copy_mem, size_t *copy_size,
|
||||||
|
|||||||
Reference in New Issue
Block a user