Linux Kernel Selftest development
 help / color / mirror / Atom feed
* [PATCH bpf-next v1 0/8] libbpf, selftests/bpf: Support cross-endian usage
@ 2024-08-21  9:09 Tony Ambardar
  2024-08-21  9:09 ` [PATCH bpf-next v1 1/8] libbpf: Improve log message formatting Tony Ambardar
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Tony Ambardar @ 2024-08-21  9:09 UTC (permalink / raw)
  To: bpf
  Cc: Tony Ambardar, linux-kselftest, Andrii Nakryiko, Eduard Zingerman,
	Alexei Starovoitov, Daniel Borkmann, Martin KaFai Lau, Song Liu,
	Yonghong Song, John Fastabend, KP Singh, Stanislav Fomichev,
	Hao Luo, Jiri Olsa, Mykola Lysenko, Shuah Khan, Ilya Leoshkevich

Hello all,

This patch series targets a long-standing BPF usability issue - the lack
of general cross-compilation support - by enabling cross-endian usage of
libbpf and cross-endian build targets for selftests/bpf. Use cases range
from better BPF support for embedded systems based on e.g. big-endian
MIPS, to more build/test options for s390x systems.

Initial development and testing used mips64, since this arch makes
switching the build byte-order trivial and is thus very handy for A/B
testing. However, it lacks some key features (bpf2bpf call, kfuncs, etc)
making for poor selftests/bpf coverage.

Final testing takes the kernel and selftests/bpf cross-built from x86_64
to s390x, and runs the result under QEMU/s390x. That same configuration
could also be used on kernel-patches/bpf CI for regression testing endian
support or perhaps load-sharing s390x builds across x86_64 systems.

This thread includes some background regarding testing on QEMU/s390x and
the generally favourable results (3 failures running test_progs):
    https://lore.kernel.org/bpf/ZsEcsaa3juxxQBUf@kodidev-ubuntu/

Feedback and suggestions are welcome!

Best regards,
Tony


Tony Ambardar (8):
  libbpf: Improve log message formatting
  libbpf: Fix header comment typos for BTF.ext
  libbpf: Fix output .symtab byte-order during linking
  libbpf: Support BTF.ext loading and output in either endianness
  libbpf: Support opening bpf objects of either endianness
  libbpf: Support linking bpf objects of either endianness
  libbpf: Support creating light skeleton of either endianness
  selftests/bpf: Support cross-endian building

 tools/lib/bpf/bpf_gen_internal.h     |   1 +
 tools/lib/bpf/btf.c                  | 167 +++++++++++++++++++++++--
 tools/lib/bpf/btf.h                  |   2 +
 tools/lib/bpf/btf_dump.c             |   2 +-
 tools/lib/bpf/btf_relocate.c         |   2 +-
 tools/lib/bpf/gen_loader.c           | 179 +++++++++++++++++++++------
 tools/lib/bpf/libbpf.c               |  26 +++-
 tools/lib/bpf/libbpf.map             |   2 +
 tools/lib/bpf/libbpf_internal.h      |  17 ++-
 tools/lib/bpf/linker.c               | 108 +++++++++++++---
 tools/lib/bpf/relo_core.c            |   2 +-
 tools/lib/bpf/skel_internal.h        |   3 +-
 tools/testing/selftests/bpf/Makefile |   7 +-
 13 files changed, 438 insertions(+), 80 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-08-22  9:20 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-21  9:09 [PATCH bpf-next v1 0/8] libbpf, selftests/bpf: Support cross-endian usage Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 1/8] libbpf: Improve log message formatting Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 2/8] libbpf: Fix header comment typos for BTF.ext Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 3/8] libbpf: Fix output .symtab byte-order during linking Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 4/8] libbpf: Support BTF.ext loading and output in either endianness Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 5/8] libbpf: Support opening bpf objects of " Tony Ambardar
2024-08-22  1:55   ` Alexei Starovoitov
2024-08-22  9:20     ` Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 6/8] libbpf: Support linking " Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 7/8] libbpf: Support creating light skeleton " Tony Ambardar
2024-08-21  9:09 ` [PATCH bpf-next v1 8/8] selftests/bpf: Support cross-endian building Tony Ambardar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox