mbox series

[bpf-next,0/3] Fix libbpf's bpf_object and BPF subskel interoperability

Message ID 20241023043908.3834423-1-andrii@kernel.org (mailing list archive)
Headers show
Series Fix libbpf's bpf_object and BPF subskel interoperability | expand

Message

Andrii Nakryiko Oct. 23, 2024, 4:39 a.m. UTC
Fix libbpf's global data map mmap()'ing logic to make BPF objects loaded
through generic bpf_object__load() API interoperable with BPF subskeleton
instantiated from such BPF object. The issue is in re-mmap()'ing of global
data maps after BPF object is loaded into kernel, which is currently done in
BPF skeleton-specific code, and should instead be done in generic and common
bpf_object_load() logic.

See patch #2 for the fix, patch #3 for the selftests.  Patch #1 is preliminary
fix for existing spin_lock selftests which currently works by accident.

Andrii Nakryiko (3):
  selftests/bpf: fix test_spin_lock_fail.c's global vars usage
  libbpf: move global data mmap()'ing into bpf_object__load()
  selftests/bpf: validate generic bpf_object and subskel APIs work
    together

 tools/lib/bpf/libbpf.c                        | 83 +++++++++----------
 .../selftests/bpf/prog_tests/subskeleton.c    | 76 ++++++++++++++++-
 .../selftests/bpf/progs/test_spin_lock_fail.c |  4 +-
 3 files changed, 117 insertions(+), 46 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org Oct. 24, 2024, 5:20 a.m. UTC | #1
Hello:

This series was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <ast@kernel.org>:

On Tue, 22 Oct 2024 21:39:05 -0700 you wrote:
> Fix libbpf's global data map mmap()'ing logic to make BPF objects loaded
> through generic bpf_object__load() API interoperable with BPF subskeleton
> instantiated from such BPF object. The issue is in re-mmap()'ing of global
> data maps after BPF object is loaded into kernel, which is currently done in
> BPF skeleton-specific code, and should instead be done in generic and common
> bpf_object_load() logic.
> 
> [...]

Here is the summary with links:
  - [bpf-next,1/3] selftests/bpf: fix test_spin_lock_fail.c's global vars usage
    https://git.kernel.org/bpf/bpf-next/c/1b2bfc29695d
  - [bpf-next,2/3] libbpf: move global data mmap()'ing into bpf_object__load()
    https://git.kernel.org/bpf/bpf-next/c/137978f42251
  - [bpf-next,3/3] selftests/bpf: validate generic bpf_object and subskel APIs work together
    https://git.kernel.org/bpf/bpf-next/c/80a54566b7f0

You are awesome, thank you!