From: Anton Protopopov <aspsk@isovalent.com>
To: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Cc: bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH v2 bpf-next 1/6] bpf: add a __btf_get_by_fd helper
Date: Tue, 26 Nov 2024 16:33:26 +0000 [thread overview]
Message-ID: <Z0X4VqTxbT8+NAuW@eis> (raw)
In-Reply-To: <CAADnVQ+MdboMD8SGyx2xSbJ3+YL2HgwKAZvj+S49G3x0gqKLXw@mail.gmail.com>
On 24/11/25 05:31PM, Alexei Starovoitov wrote:
> On Tue, Nov 19, 2024 at 2:17 AM Anton Protopopov <aspsk@isovalent.com> wrote:
> >
> > Add a new helper to get a pointer to a struct btf from a file
> > descriptor which doesn't increase a refcount.
> >
> > Signed-off-by: Anton Protopopov <aspsk@isovalent.com>
> > ---
> > include/linux/btf.h | 13 +++++++++++++
> > kernel/bpf/btf.c | 13 ++++---------
> > 2 files changed, 17 insertions(+), 9 deletions(-)
> >
> > diff --git a/include/linux/btf.h b/include/linux/btf.h
> > index 4214e76c9168..050051a578a8 100644
> > --- a/include/linux/btf.h
> > +++ b/include/linux/btf.h
> > @@ -4,6 +4,7 @@
> > #ifndef _LINUX_BTF_H
> > #define _LINUX_BTF_H 1
> >
> > +#include <linux/file.h>
> > #include <linux/types.h>
> > #include <linux/bpfptr.h>
> > #include <linux/bsearch.h>
> > @@ -143,6 +144,18 @@ void btf_get(struct btf *btf);
> > void btf_put(struct btf *btf);
> > const struct btf_header *btf_header(const struct btf *btf);
> > int btf_new_fd(const union bpf_attr *attr, bpfptr_t uattr, u32 uattr_sz);
> > +
> > +static inline struct btf *__btf_get_by_fd(struct fd f)
> > +{
> > + if (fd_empty(f))
> > + return ERR_PTR(-EBADF);
> > +
> > + if (unlikely(fd_file(f)->f_op != &btf_fops))
> > + return ERR_PTR(-EINVAL);
> > +
> > + return fd_file(f)->private_data;
> > +}
>
> Maybe let's call it __btf_get() and place it next to __bpf_map_get() ?
> So names and function bodies are directly comparable?
I named it so because the corresponding helper which is taking a ref is named
btf_get_by_fd(). And btf_get() is actually increasing a refcnt. In the bpf_map
case naming is a bit different (and also not super-consistent,
bpf_map_inc/bpf_map_put to +- refcnt). Do you want me to make names more
consistent, globally?
next prev parent reply other threads:[~2024-11-26 16:30 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-19 10:15 [PATCH v2 bpf-next 0/6] Add fd_array_cnt attribute for BPF_PROG_LOAD Anton Protopopov
2024-11-19 10:15 ` [PATCH v2 bpf-next 1/6] bpf: add a __btf_get_by_fd helper Anton Protopopov
2024-11-26 1:31 ` Alexei Starovoitov
2024-11-26 16:33 ` Anton Protopopov [this message]
2024-11-26 16:52 ` Alexei Starovoitov
2024-11-19 10:15 ` [PATCH v2 bpf-next 2/6] bpf: move map/prog compatibility checks Anton Protopopov
2024-11-26 18:44 ` Andrii Nakryiko
2024-11-19 10:15 ` [PATCH v2 bpf-next 3/6] bpf: add fd_array_cnt attribute for prog_load Anton Protopopov
2024-11-26 1:38 ` Alexei Starovoitov
2024-11-26 17:05 ` Anton Protopopov
2024-11-26 18:51 ` Andrii Nakryiko
2024-11-26 20:40 ` Alexei Starovoitov
2024-11-27 6:54 ` Anton Protopopov
2024-11-27 6:49 ` Anton Protopopov
2024-11-26 2:11 ` Hou Tao
2024-11-27 6:44 ` Anton Protopopov
2024-11-28 4:15 ` Hou Tao
2024-11-19 10:15 ` [PATCH v2 bpf-next 4/6] selftests/bpf: Add tests for fd_array_cnt Anton Protopopov
2024-11-26 18:54 ` Andrii Nakryiko
2024-11-27 6:45 ` Anton Protopopov
2024-11-19 10:15 ` [PATCH v2 bpf-next 5/6] bpf: fix potential error return Anton Protopopov
2024-11-26 1:43 ` Alexei Starovoitov
2024-11-26 16:36 ` Anton Protopopov
2024-11-19 10:15 ` [PATCH v2 bpf-next 6/6] selftest/bpf: replace magic constants by macros Anton Protopopov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z0X4VqTxbT8+NAuW@eis \
--to=aspsk@isovalent.com \
--cc=alexei.starovoitov@gmail.com \
--cc=bpf@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.