You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
full support for BPF-to-BPF function calls, no more need for __always_inline;
support for multiple BPF programs with the same section name;
support for accessing in-kernel per-CPU variables;
support for type and enum value CO-RE relocations;
libbpf will auto-adjust CO-RE direct memory loads to adjust to 32-bit host architecture;
BPF_PROG_BIND_MAP support, .rodata will be bound automatically if kernel supports it;
new APIs for programmatic generation of BTF;
support for big-endian and little-endian endianness in BTF;
perf buffer API additions allowing better integration with polling libraries (perf_buffer__buffer_cnt(), perf_buffer__buffer_fd(), perf_buffer__consume_buffer());
bpf_prog_test_run_opts() API;
bpf_program__attach_freplace() API.
New BPF program types supported:
sleepable fentry/fexit/fmod_ret/lsm BPF program.
BPF-side changes:
libbpf will automatically fall back to bpf_probe_read[_str]() if bpf_probe_read_{kernel, user}[_str]() are not supported on older kernels, so it's always safe to use bpf_probe_read_{kernel, user}[_str]() in your application and not worry about kernel version compatibility;
bpf_d_path() helper;
bpf_per_cpu_ptr() and bpf_this_cpu_ptr() helpers for working with per-CPU kernel variables;