All three are addressed in v4:
https://lore.kernel.org/bpf/[email protected]/

- 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

Reply via email to