linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next v5 0/3] Allow mmap of /sys/kernel/btf/vmlinux
@ 2025-05-20 13:01 Lorenz Bauer
  2025-05-20 13:01 ` [PATCH bpf-next v5 1/3] btf: allow mmap of vmlinux btf Lorenz Bauer
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Lorenz Bauer @ 2025-05-20 13:01 UTC (permalink / raw)
  To: Arnd Bergmann, Alexei Starovoitov, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Eduard Zingerman, Song Liu,
	Yonghong Song, John Fastabend, KP Singh, Stanislav Fomichev,
	Hao Luo, Jiri Olsa, Mykola Lysenko, Shuah Khan
  Cc: linux-arch, linux-kernel, bpf, linux-kselftest, Lorenz Bauer,
	Alan Maguire

I'd like to cut down the memory usage of parsing vmlinux BTF in ebpf-go.
With some upcoming changes the library is sitting at 5MiB for a parse.
Most of that memory is simply copying the BTF blob into user space.
By allowing vmlinux BTF to be mmapped read-only into user space I can
cut memory usage by about 75%.

Signed-off-by: Lorenz Bauer <lmb@isovalent.com>
---
Changes in v5:
- Fix error return of btf_parse_raw_mmap (Andrii)
- Link to v4: https://lore.kernel.org/r/20250510-vmlinux-mmap-v4-0-69e424b2a672@isovalent.com

Changes in v4:
- Go back to remap_pfn_range for aarch64 compat
- Dropped btf_new_no_copy (Andrii)
- Fixed nits in selftests (Andrii)
- Clearer error handling in the mmap handler (Andrii)
- Fixed build on s390
- Link to v3: https://lore.kernel.org/r/20250505-vmlinux-mmap-v3-0-5d53afa060e8@isovalent.com

Changes in v3:
- Remove slightly confusing calculation of trailing (Alexei)
- Use vm_insert_page (Alexei)
- Simplified libbpf code
- Link to v2: https://lore.kernel.org/r/20250502-vmlinux-mmap-v2-0-95c271434519@isovalent.com

Changes in v2:
- Use btf__new in selftest
- Avoid vm_iomap_memory in btf_vmlinux_mmap
- Add VM_DONTDUMP
- Add support to libbpf
- Link to v1: https://lore.kernel.org/r/20250501-vmlinux-mmap-v1-0-aa2724572598@isovalent.com

---
Lorenz Bauer (3):
      btf: allow mmap of vmlinux btf
      selftests: bpf: add a test for mmapable vmlinux BTF
      libbpf: Use mmap to parse vmlinux BTF from sysfs

 include/asm-generic/vmlinux.lds.h                  |  3 +-
 kernel/bpf/sysfs_btf.c                             | 32 ++++++++
 tools/lib/bpf/btf.c                                | 89 +++++++++++++++++-----
 tools/testing/selftests/bpf/prog_tests/btf_sysfs.c | 81 ++++++++++++++++++++
 4 files changed, 186 insertions(+), 19 deletions(-)
---
base-commit: 7220eabff8cb4af3b93cd021aa853b9f5df2923f
change-id: 20250501-vmlinux-mmap-2ec5563c3ef1

Best regards,
-- 
Lorenz Bauer <lmb@isovalent.com>


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

end of thread, other threads:[~2025-07-17 15:25 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-20 13:01 [PATCH bpf-next v5 0/3] Allow mmap of /sys/kernel/btf/vmlinux Lorenz Bauer
2025-05-20 13:01 ` [PATCH bpf-next v5 1/3] btf: allow mmap of vmlinux btf Lorenz Bauer
2025-05-22 23:01   ` Shakeel Butt
2025-05-23 17:06     ` Andrii Nakryiko
2025-07-17 12:39   ` Breno Leitao
2025-07-17 13:17     ` Lorenz Bauer
2025-07-17 14:48       ` Alexei Starovoitov
2025-07-17 15:15         ` Lorenz Bauer
2025-07-17 15:24           ` Alexei Starovoitov
2025-05-20 13:01 ` [PATCH bpf-next v5 2/3] selftests: bpf: add a test for mmapable vmlinux BTF Lorenz Bauer
2025-05-20 13:01 ` [PATCH bpf-next v5 3/3] libbpf: Use mmap to parse vmlinux BTF from sysfs Lorenz Bauer
2025-05-23 17:10 ` [PATCH bpf-next v5 0/3] Allow mmap of /sys/kernel/btf/vmlinux patchwork-bot+netdevbpf

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).