netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next 0/3] libbpf: auto-resize relocatable LOAD/STORE instructions
@ 2020-10-02  1:06 Andrii Nakryiko
  2020-10-02  1:06 ` [PATCH bpf-next 1/3] libbpf: support safe subset of load/store instruction resizing with CO-RE Andrii Nakryiko
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Andrii Nakryiko @ 2020-10-02  1:06 UTC (permalink / raw)
  To: bpf, netdev, ast, daniel
  Cc: andrii.nakryiko, kernel-team, Andrii Nakryiko, Luka Perkov,
	Tony Ambardar

Patch set implements logic in libbpf to auto-adjust memory size (1-, 2-, 4-,
8-bytes) of load/store (LD/ST/STX) instructions which have BPF CO-RE field
offset relocation associated with it. In practice this means transparent
handling of 32-bit kernels, both pointer and unsigned integers. Signed
integers are not relocatable with zero-extending loads/stores, so libbpf
poisons them and generates a warning. If/when BPF gets support for sign-extending
loads/stores, it would be possible to automatically relocate them as well.

All the details are contained in patch #1 comments and commit message.
Patch #2 is a simple change in libbpf to make advanced testing with custom BTF
easier. Patch #3 validates correct uses of auto-resizable loads, as well as
check that libbpf fails invalid uses.

I'd really appreciate folks that use BPF on 32-bit architectures to test this
out with their BPF programs and report if there are any problems with the
approach.

Cc: Luka Perkov <luka.perkov@sartura.hr>
Cc: Tony Ambardar <tony.ambardar@gmail.com>

Andrii Nakryiko (3):
  libbpf: support safe subset of load/store instruction resizing with
    CO-RE
  libbpf: allow specifying both ELF and raw BTF for CO-RE BTF override
  selftests/bpf: validate libbpf's auto-sizing of LD/ST/STX instructions

 tools/lib/bpf/libbpf.c                        | 146 ++++++++++++-
 .../selftests/bpf/prog_tests/core_autosize.c  | 199 ++++++++++++++++++
 .../selftests/bpf/progs/test_core_autosize.c  | 148 +++++++++++++
 3 files changed, 483 insertions(+), 10 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/core_autosize.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_core_autosize.c

-- 
2.24.1


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

end of thread, other threads:[~2020-10-08 17:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-02  1:06 [PATCH bpf-next 0/3] libbpf: auto-resize relocatable LOAD/STORE instructions Andrii Nakryiko
2020-10-02  1:06 ` [PATCH bpf-next 1/3] libbpf: support safe subset of load/store instruction resizing with CO-RE Andrii Nakryiko
2020-10-06 18:08   ` Alexei Starovoitov
2020-10-06 18:17     ` Andrii Nakryiko
2020-10-02  1:06 ` [PATCH bpf-next 2/3] libbpf: allow specifying both ELF and raw BTF for CO-RE BTF override Andrii Nakryiko
2020-10-02  1:06 ` [PATCH bpf-next 3/3] selftests/bpf: validate libbpf's auto-sizing of LD/ST/STX instructions Andrii Nakryiko
2020-10-07 17:56 ` [PATCH bpf-next 0/3] libbpf: auto-resize relocatable LOAD/STORE instructions Luka Perkov
2020-10-07 18:01   ` Andrii Nakryiko
2020-10-08 10:34     ` Luka Perkov
2020-10-08 17:59       ` Andrii Nakryiko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).