> Add the runtime side of delivering the vmlinux BTF as a module: with > CONFIG_DEBUG_INFO_BTF=m the BTF is carried by a module named btf_vmlinux > and installed by the BTF module notifier when it loads. Nothing in this > patch is reachable yet: CONFIG_DEBUG_INFO_BTF is still a bool and every > new path is under IS_MODULE(CONFIG_DEBUG_INFO_BTF); the kbuild side and > the Kconfig change follow. > > With CONFIG_DEBUG_INFO_BTF=y the vmlinux BTF, 5.4 MiB on x86-64 with a > distribution config, is part of the kernel image and resident from boot > whether anything uses it or not. Most systems never do. Carrying it in > a module that is loaded on first use makes the memory a cost of using > BTF rather than of having a kernel that supports it. > > btf_vmlinux_data() hands out the raw vmlinux BTF: from __start_BTF with > =y, or with =m from a vmalloc_user() copy that the notifier makes when > [ ... ] > maps the probed file. Before the BTF is loaded mmap() fails, and libbpf, > which tries mmap() first, falls back to read(); afterwards it maps the > vmalloc_user() copy with remap_vmalloc_range(). > > Signed-off-by: Jay Wang <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=4
