2024-05-07 02:46:08

by Wang, Haiyue

[permalink] [raw]
Subject: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable

Rename the kfunc set variable to specify the 'arena' function scope,
although the 'UNSPEC' type BPF program is mapped to 'COMMON' hook.

And there is 'common_kfunc_set' defined for real 'common' function in
file 'kernel/bpf/helpers.c'.

Signed-off-by: Haiyue Wang <[email protected]>
---
kernel/bpf/arena.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/bpf/arena.c b/kernel/bpf/arena.c
index 6c81630c5293..ef2177c0465f 100644
--- a/kernel/bpf/arena.c
+++ b/kernel/bpf/arena.c
@@ -557,13 +557,13 @@ BTF_ID_FLAGS(func, bpf_arena_alloc_pages, KF_TRUSTED_ARGS | KF_SLEEPABLE)
BTF_ID_FLAGS(func, bpf_arena_free_pages, KF_TRUSTED_ARGS | KF_SLEEPABLE)
BTF_KFUNCS_END(arena_kfuncs)

-static const struct btf_kfunc_id_set common_kfunc_set = {
+static const struct btf_kfunc_id_set arena_kfunc_set = {
.owner = THIS_MODULE,
.set = &arena_kfuncs,
};

static int __init kfunc_init(void)
{
- return register_btf_kfunc_id_set(BPF_PROG_TYPE_UNSPEC, &common_kfunc_set);
+ return register_btf_kfunc_id_set(BPF_PROG_TYPE_UNSPEC, &arena_kfunc_set);
}
late_initcall(kfunc_init);
--
2.43.2



2024-05-07 14:36:43

by Alexei Starovoitov

[permalink] [raw]
Subject: Re: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable

On Mon, May 6, 2024 at 7:46 PM Haiyue Wang <[email protected]> wrote:
>
> Rename the kfunc set variable to specify the 'arena' function scope,
> although the 'UNSPEC' type BPF program is mapped to 'COMMON' hook.
>
> And there is 'common_kfunc_set' defined for real 'common' function in
> file 'kernel/bpf/helpers.c'.

I think common_kfunc_set is a better name to describe that these
two kfuncs are in a common category.
BPF_PROG_TYPE_UNSPEC is a lot less obvious.

There are two static common_kfunc_set in helpers.c and arena.c
and that's fine.

pw-bot: cr

2024-05-07 16:55:57

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable

On Tue, May 7, 2024 at 7:36 AM Alexei Starovoitov
<[email protected]> wrote:
>
> On Mon, May 6, 2024 at 7:46 PM Haiyue Wang <[email protected]> wrote:
> >
> > Rename the kfunc set variable to specify the 'arena' function scope,
> > although the 'UNSPEC' type BPF program is mapped to 'COMMON' hook.
> >
> > And there is 'common_kfunc_set' defined for real 'common' function in
> > file 'kernel/bpf/helpers.c'.
>
> I think common_kfunc_set is a better name to describe that these
> two kfuncs are in a common category.
> BPF_PROG_TYPE_UNSPEC is a lot less obvious.
>
> There are two static common_kfunc_set in helpers.c and arena.c
> and that's fine.

it is actually confusing when reading/grepping code, though, so why
not have arena_common_kfunc_set and whatever the meaningful
"qualifier" name for the other one?

>
> pw-bot: cr

2024-05-07 20:54:27

by Alexei Starovoitov

[permalink] [raw]
Subject: Re: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable

On Tue, May 7, 2024 at 9:43 AM Andrii Nakryiko
<[email protected]> wrote:
>
> On Tue, May 7, 2024 at 7:36 AM Alexei Starovoitov
> <[email protected]> wrote:
> >
> > On Mon, May 6, 2024 at 7:46 PM Haiyue Wang <[email protected]> wrote:
> > >
> > > Rename the kfunc set variable to specify the 'arena' function scope,
> > > although the 'UNSPEC' type BPF program is mapped to 'COMMON' hook.
> > >
> > > And there is 'common_kfunc_set' defined for real 'common' function in
> > > file 'kernel/bpf/helpers.c'.
> >
> > I think common_kfunc_set is a better name to describe that these
> > two kfuncs are in a common category.
> > BPF_PROG_TYPE_UNSPEC is a lot less obvious.
> >
> > There are two static common_kfunc_set in helpers.c and arena.c
> > and that's fine.
>
> it is actually confusing when reading/grepping code, though, so why

What's the confusion? Same name static var in different files?
There are tons of such cases in the kernel src tree.

> not have arena_common_kfunc_set and whatever the meaningful
> "qualifier" name for the other one?

arena_common_kfunc_set is certainly better than arena_kfunc_set,
but I don't like to make the precedent to start renaming static vars
because they have the same name.

> >
> > pw-bot: cr

2024-05-07 21:20:59

by Andrii Nakryiko

[permalink] [raw]
Subject: Re: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable

On Tue, May 7, 2024 at 1:42 PM Alexei Starovoitov
<[email protected]> wrote:
>
> On Tue, May 7, 2024 at 9:43 AM Andrii Nakryiko
> <[email protected]> wrote:
> >
> > On Tue, May 7, 2024 at 7:36 AM Alexei Starovoitov
> > <[email protected]> wrote:
> > >
> > > On Mon, May 6, 2024 at 7:46 PM Haiyue Wang <haiyue.wang@intelcom> wrote:
> > > >
> > > > Rename the kfunc set variable to specify the 'arena' function scope,
> > > > although the 'UNSPEC' type BPF program is mapped to 'COMMON' hook.
> > > >
> > > > And there is 'common_kfunc_set' defined for real 'common' function in
> > > > file 'kernel/bpf/helpers.c'.
> > >
> > > I think common_kfunc_set is a better name to describe that these
> > > two kfuncs are in a common category.
> > > BPF_PROG_TYPE_UNSPEC is a lot less obvious.
> > >
> > > There are two static common_kfunc_set in helpers.c and arena.c
> > > and that's fine.
> >
> > it is actually confusing when reading/grepping code, though, so why
>
> What's the confusion? Same name static var in different files?

Not in general, but in this case it's arena-specific kfuncs for all
program types, and it's initialized with &arena_kfuncs, so it would be
matching to have some "arena" mention in the name. But it's minor,
let's keep it.

> There are tons of such cases in the kernel src tree.
>
> > not have arena_common_kfunc_set and whatever the meaningful
> > "qualifier" name for the other one?
>
> arena_common_kfunc_set is certainly better than arena_kfunc_set,
> but I don't like to make the precedent to start renaming static vars
> because they have the same name.
>
> > >
> > > pw-bot: cr

2024-05-08 00:50:08

by Wang, Haiyue

[permalink] [raw]
Subject: RE: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable

> -----Original Message-----
> From: Andrii Nakryiko <[email protected]>
> Sent: Wednesday, May 8, 2024 05:21
> To: Alexei Starovoitov <[email protected]>
> Cc: Wang, Haiyue <[email protected]>; bpf <[email protected]>; Alexei Starovoitov
> <[email protected]>; Daniel Borkmann <[email protected]>; Andrii Nakryiko <[email protected]>; Martin
> KaFai Lau <[email protected]>; Eduard Zingerman <[email protected]>; Song Liu <[email protected]>;
> Yonghong Song <[email protected]>; John Fastabend <[email protected]>; KP Singh
> <[email protected]>; Stanislav Fomichev <[email protected]>; Hao Luo <[email protected]>; Jiri Olsa
> <[email protected]>; open list <[email protected]>
> Subject: Re: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable
>
> On Tue, May 7, 2024 at 1:42 PM Alexei Starovoitov
> <[email protected]> wrote:
> >
> > On Tue, May 7, 2024 at 9:43 AM Andrii Nakryiko
> > <[email protected]> wrote:
> > >
> > > On Tue, May 7, 2024 at 7:36 AM Alexei Starovoitov
> > > <[email protected]> wrote:
> > > >
> > > > On Mon, May 6, 2024 at 7:46 PM Haiyue Wang <[email protected]> wrote:
> > > > >
> > > > > Rename the kfunc set variable to specify the 'arena' function scope,
> > > > > although the 'UNSPEC' type BPF program is mapped to 'COMMON' hook.
> > > > >
> > > > > And there is 'common_kfunc_set' defined for real 'common' function in
> > > > > file 'kernel/bpf/helpers.c'.
> > > >
> > > > I think common_kfunc_set is a better name to describe that these
> > > > two kfuncs are in a common category.
> > > > BPF_PROG_TYPE_UNSPEC is a lot less obvious.
> > > >
> > > > There are two static common_kfunc_set in helpers.c and arena.c
> > > > and that's fine.
> > >
> > > it is actually confusing when reading/grepping code, though, so why
> >
> > What's the confusion? Same name static var in different files?
>
> Not in general, but in this case it's arena-specific kfuncs for all
> program types, and it's initialized with &arena_kfuncs, so it would be

Yes, the original idea is to try match some kind of map style:
common_kfunc_set.set = &common_btf_ids

> matching to have some "arena" mention in the name. But it's minor,
> let's keep it.
>
> > There are tons of such cases in the kernel src tree.
> >
> > > not have arena_common_kfunc_set and whatever the meaningful
> > > "qualifier" name for the other one?
> >
> > arena_common_kfunc_set is certainly better than arena_kfunc_set,
> > but I don't like to make the precedent to start renaming static vars
> > because they have the same name.

From the category point of view, "arena" should be "common" function, and
make sense to name "common_kfunc_set". ;-)

> >
> > > >
> > > > pw-bot: cr