Re: [PATCH bpf-next] libbpf: deprecate bpf_perf_event_read_simple() API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 29, 2021 at 12:42 PM Christy Lee <christylee@xxxxxx> wrote:
>
> 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

nit: we usually have two spaces before such referenced, I've fixed it
up while applying

>
> Signed-off-by: Christy Lee <christylee@xxxxxx>
> ---
>  tools/lib/bpf/libbpf.c | 15 ++++++++++++---
>  tools/lib/bpf/libbpf.h |  1 +
>  2 files changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> index 9cb99d1e2385..8a8020985db1 100644
> --- a/tools/lib/bpf/libbpf.c
> +++ b/tools/lib/bpf/libbpf.c
> @@ -10676,8 +10676,8 @@ struct bpf_link *bpf_map__attach_struct_ops(const struct bpf_map *map)
>         return link;
>  }
>
> -enum bpf_perf_event_ret
> -bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
> +static enum bpf_perf_event_ret
> +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)

please also adjust indentation for wrapped arguments. I did it this
time while applying, but please keep that in mind for the future.

>  {
> @@ -10724,6 +10724,15 @@ bpf_perf_event_read_simple(void *mmap_mem, size_t mmap_size, size_t page_size,
>         return libbpf_err(ret);
>  }
>
> +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)
> +{
> +       return perf_event_read_simple(mmap_mem, mmap_size, page_size, copy_mem,
> +                                     copy_size, fn, private_data);
> +}
> +

here you could have just created an alias instead of passing the
function through. I've changed to an alias when applying.


>  struct perf_buffer;
>
>  struct perf_buffer_params {
> @@ -11132,7 +11141,7 @@ static int perf_buffer__process_records(struct perf_buffer *pb,
>  {
>         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,
>                                          &cpu_buf->buf_size,
>                                          perf_buffer__process_record, cpu_buf);
> diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
> index 85dfef88b3d2..ddf1cc9e7803 100644
> --- a/tools/lib/bpf/libbpf.h
> +++ b/tools/lib/bpf/libbpf.h
> @@ -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
>         (*bpf_perf_event_print_t)(struct perf_event_header *hdr,
>                                   void *private_data);
> +LIBBPF_DEPRECATED_SINCE(0, 8, "use perf_buffer__poll() or  perf_buffer__consume() instead")
>  LIBBPF_API 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,
> --
> 2.30.2
>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux