From: Tony Ambardar <tony.ambardar@gmail.com>
To: Eduard Zingerman <eddyz87@gmail.com>
Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>,
bpf@vger.kernel.org, linux-kselftest@vger.kernel.org,
Andrii Nakryiko <andrii@kernel.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Martin KaFai Lau <martin.lau@linux.dev>,
Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@kernel.org>,
Stanislav Fomichev <sdf@fomichev.me>, Hao Luo <haoluo@google.com>,
Jiri Olsa <jolsa@kernel.org>, Mykola Lysenko <mykolal@fb.com>,
Shuah Khan <shuah@kernel.org>,
Ilya Leoshkevich <iii@linux.ibm.com>,
Quentin Monnet <qmo@kernel.org>
Subject: Re: [PATCH bpf-next v4 5/8] libbpf: Support opening bpf objects of either endianness
Date: Sat, 31 Aug 2024 23:05:46 -0700 [thread overview]
Message-ID: <ZtQEOk5ZZRtWCekn@kodidev-ubuntu> (raw)
In-Reply-To: <f52f1489bd0936595ff0e492bcdfad8307bab364.camel@gmail.com>
On Fri, Aug 30, 2024 at 06:26:10PM -0700, Eduard Zingerman wrote:
> On Fri, 2024-08-30 at 14:25 -0700, Andrii Nakryiko wrote:
>
> [...]
>
> > > err = bpf_object__elf_init(obj);
> > > - err = err ? : bpf_object__check_endianness(obj);
> > > err = err ? : bpf_object__elf_collect(obj);
> > > err = err ? : bpf_object__collect_externs(obj);
> > > err = err ? : bpf_object_fixup_btf(obj);
> > > @@ -8500,6 +8529,10 @@ static int bpf_object_load(struct bpf_object *obj, int extra_log_level, const ch
> > >
> > > if (obj->gen_loader)
> > > bpf_gen__init(obj->gen_loader, extra_log_level, obj->nr_programs, obj->nr_maps);
> >
> > nit: add {} around if, both sides should either have or not have {}
> >
> > > + else if (!is_native_endianness(obj)) {
> > > + pr_warn("object '%s' is not native endianness\n", obj->name);
> >
> > "object '%s': load is not supported in non-native endianness\n"
> >
> >
> > > + return libbpf_err(-LIBBPF_ERRNO__ENDIAN);
> > > + }
>
> Silly question:
> why load is allowed to proceed for non-native endianness when obj->gen_loader is set?
>
Not silly, had similar questions. Having obj->gen_loader set means "light
skeleton" is being generated, where it tries to eliminate dependency on
libbpf by skeleton code. In this mode, the code doesn't load anything but
instead tracks "what would libbpf do" so it can later write a pure BPF
loader program. Alexei will correct me or elaborate as needed I hope.
Unconditionally blocking on non-native endianness would break light skel.
next prev parent reply other threads:[~2024-09-01 6:05 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-30 7:29 [PATCH bpf-next v4 0/8] libbpf, selftests/bpf: Support cross-endian usage Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 1/8] libbpf: Improve log message formatting Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 2/8] libbpf: Fix header comment typos for BTF.ext Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 3/8] libbpf: Fix output .symtab byte-order during linking Tony Ambardar
2024-08-30 22:15 ` Eduard Zingerman
2024-09-01 5:59 ` Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 4/8] libbpf: Support BTF.ext loading and output in either endianness Tony Ambardar
2024-08-30 21:14 ` Andrii Nakryiko
2024-09-02 8:19 ` Tony Ambardar
2024-09-04 19:55 ` Andrii Nakryiko
2024-08-31 0:15 ` Eduard Zingerman
2024-09-16 8:20 ` Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 5/8] libbpf: Support opening bpf objects of " Tony Ambardar
2024-08-30 21:25 ` Andrii Nakryiko
2024-08-31 1:26 ` Eduard Zingerman
2024-09-01 6:05 ` Tony Ambardar [this message]
2024-09-01 6:03 ` Tony Ambardar
2024-08-31 1:16 ` Eduard Zingerman
2024-09-01 6:04 ` Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 6/8] libbpf: Support linking " Tony Ambardar
2024-08-30 21:25 ` Andrii Nakryiko
2024-09-01 6:02 ` Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 7/8] libbpf: Support creating light skeleton " Tony Ambardar
2024-08-30 21:30 ` Andrii Nakryiko
2024-08-31 1:24 ` Alexei Starovoitov
2024-09-01 6:02 ` Tony Ambardar
2024-09-01 6:00 ` Tony Ambardar
2024-08-30 7:29 ` [PATCH bpf-next v4 8/8] selftests/bpf: Support cross-endian building Tony Ambardar
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=ZtQEOk5ZZRtWCekn@kodidev-ubuntu \
--to=tony.ambardar@gmail.com \
--cc=andrii.nakryiko@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=haoluo@google.com \
--cc=iii@linux.ibm.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=martin.lau@linux.dev \
--cc=mykolal@fb.com \
--cc=qmo@kernel.org \
--cc=sdf@fomichev.me \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=yonghong.song@linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox