[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CACdoK4Kv19M10sOSoDo5veDE0xu3C1Rd3TM-7bQ2i9a_3=_r1w@mail.gmail.com>
Date: Sat, 13 Mar 2021 21:27:31 +0000
From: Quentin Monnet <quentin@...valent.com>
To: Andrii Nakryiko <andrii.nakryiko@...il.com>
Cc: Andrii Nakryiko <andrii@...nel.org>, bpf <bpf@...r.kernel.org>,
Networking <netdev@...r.kernel.org>,
Alexei Starovoitov <ast@...com>,
Daniel Borkmann <daniel@...earbox.net>,
Kernel Team <kernel-team@...com>
Subject: Re: [PATCH bpf-next 07/10] bpftool: add `gen bpfo` command to perform
BPF static linking
On Sat, 13 Mar 2021 at 18:37, Andrii Nakryiko <andrii.nakryiko@...il.com> wrote:
>
> On Fri, Mar 12, 2021 at 10:07 AM Quentin Monnet <quentin@...valent.com> wrote:
> >
> > 2021-03-11 10:45 UTC-0800 ~ Andrii Nakryiko <andrii.nakryiko@...il.com>
> > > On Thu, Mar 11, 2021 at 3:31 AM Quentin Monnet <quentin@...valent.com> wrote:
> > >>
> > >> 2021-03-09 20:04 UTC-0800 ~ Andrii Nakryiko <andrii@...nel.org>
> > >>> Add `bpftool gen bpfo <output-file> <input_file>...` command to statically
> > >>> link multiple BPF object files into a single output BPF object file.
> > >>>
> > >>> Similarly to existing '*.o' convention, bpftool is establishing a '*.bpfo'
> > >>> convention for statically-linked BPF object files. Both .o and .bpfo suffixes
> > >>> will be stripped out during BPF skeleton generation to infer BPF object name.
> > >>>
> > >>> Signed-off-by: Andrii Nakryiko <andrii@...nel.org>
> > >>> ---
> > >>> tools/bpf/bpftool/gen.c | 46 ++++++++++++++++++++++++++++++++++++++++-
> > >>> 1 file changed, 45 insertions(+), 1 deletion(-)
> > >>>
> > >>> diff --git a/tools/bpf/bpftool/gen.c b/tools/bpf/bpftool/gen.c
> > >>> index 4033c46d83e7..8b1ed6c0a62f 100644
> > >>> --- a/tools/bpf/bpftool/gen.c
> > >>> +++ b/tools/bpf/bpftool/gen.c
> > >>> @@ -611,6 +654,7 @@ static int do_help(int argc, char **argv)
> > >>>
> > >>> static const struct cmd cmds[] = {
> > >>> { "skeleton", do_skeleton },
> > >>> + { "bpfo", do_bpfo },
> > >>> { "help", do_help },
> > >>> { 0 }
> > >>> };
> > >>>
> > >>
> > >> Please update the usage help message, man page, and bash completion,
> > >> thanks. Especially because what "bpftool gen bpfo" does is not intuitive
> > >> (but I don't have a better name suggestion at the moment).
> > >
> > > Yeah, forgot about manpage and bash completions, as usual.
> > >
> > > re: "gen bpfo". I don't have much better naming as well. `bpftool
> > > link` is already taken for bpf_link-related commands. It felt like
> > > keeping this under "gen" command makes sense. But maybe `bpftool
> > > linker link <out> <in1> <in2> ...` would be a bit less confusing
> > > convention?
> >
> > "bpftool linker" would have been nice, but having "bpftool link", I
> > think it would be even more confusing. We can pass commands by their
> > prefixes, so is "bpftool link" the command "link" or a prefix for
> > "linker"? (I know it would be easy to sort out from our point of view,
> > but for regular users I'm sure that would be confusing).
>
> right
>
> >
> > I don't mind leaving it under "bpftool gen", it's probably the most
> > relevant command we have. As for replacing the "bpfo" keyword, I've
> > thought of "combined", "static_linked", "archive", "concat". I write
> > them in case it's any inspiration, but I find none of them ideal :/.
>
> How about "bpftool gen object", which can be shortened in typing to
> just `bpftool gen obj`. It seems complementary to `gen skeleton`. You
> first generate object (from other objects generated by compiler, which
> might be a bit confusing at first), then you generate skeleton from
> the object. WDYT?
Sounds good, better than "bpfo" I think.
Quentin
Powered by blists - more mailing lists