Re: [PATCH bpf-next v3 9/9] kbuild, bpf: allow building the vmlinux BTF as a module

From: Jay Wang

Date: Thu Oct 01 2026 - 19:53:50 EST


All three are addressed in v4:
https://lore.kernel.org/bpf/20261001225214.12351-1-wanjay@xxxxxxxxxx/

- The ftrace argument printer is a real problem: it can run from
ftrace_dump() with interrupts disabled. print_function_args() now
only prints the arguments if the vmlinux BTF is already loaded
(bpf_peek_btf_vmlinux(), patch 5/12), like bpf_snprintf_btf(); in v4
the lookup it uses would not load the BTF anyway. Tested with
func-args on and sysrq-z as the first thing touching BTF after boot,
on a kernel with CONFIG_DEBUG_ATOMIC_SLEEP.

- The opening of the changelog now names the exceptions: BPF_PRELOAD,
users of kernel types that run before btf_vmlinux.ko can be loaded,
and code that assumes the vmlinux BTF has id 1.

- btf.rst now lists the requests that load the BTF, including struct_ops
maps, kprobe events with BTF arguments, tracepoint btf_ids files and
bpffs delegate_* options.

PROBE_EVENTS_BTF_ARGS and FUNCTION_TRACE_ARGS do stay enabled with =m,
which is intended: creating a probe with BTF arguments loads the BTF, in
process context, and the argument printer uses it once it is there.

Jay