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

From: Wang, Haiyue
Date: Tue May 07 2024 - 20:50:08 EST


> -----Original Message-----
> From: Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx>
> Sent: Wednesday, May 8, 2024 05:21
> To: Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx>
> Cc: Wang, Haiyue <haiyue.wang@xxxxxxxxx>; bpf <bpf@xxxxxxxxxxxxxxx>; Alexei Starovoitov
> <ast@xxxxxxxxxx>; Daniel Borkmann <daniel@xxxxxxxxxxxxx>; Andrii Nakryiko <andrii@xxxxxxxxxx>; Martin
> KaFai Lau <martin.lau@xxxxxxxxx>; Eduard Zingerman <eddyz87@xxxxxxxxx>; Song Liu <song@xxxxxxxxxx>;
> Yonghong Song <yonghong.song@xxxxxxxxx>; John Fastabend <john.fastabend@xxxxxxxxx>; KP Singh
> <kpsingh@xxxxxxxxxx>; Stanislav Fomichev <sdf@xxxxxxxxxx>; Hao Luo <haoluo@xxxxxxxxxx>; Jiri Olsa
> <jolsa@xxxxxxxxxx>; open list <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH bpf-next v1] bpf,arena: Rename the kfunc set variable
>
> On Tue, May 7, 2024 at 1:42 PM Alexei Starovoitov
> <alexei.starovoitov@xxxxxxxxx> wrote:
> >
> > On Tue, May 7, 2024 at 9:43 AM Andrii Nakryiko
> > <andrii.nakryiko@xxxxxxxxx> wrote:
> > >
> > > On Tue, May 7, 2024 at 7:36 AM Alexei Starovoitov
> > > <alexei.starovoitov@xxxxxxxxx> wrote:
> > > >
> > > > On Mon, May 6, 2024 at 7:46 PM Haiyue Wang <haiyue.wang@xxxxxxxxx> 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