[ANNOUNCEMENT] libbpf v0.7 release

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



libbpf v0.7 was just released ([0]). It features a bunch of new
features, quality of life improvements (e.g., automatic handling of
RLIMIT_MEMLOCK), and a bunch of further deprecations. Also, more APIs
got better documentation, as well as various bugs were fixed and
support for older kernels was improved.

Overall, libbpf v0.7 should be the last version with lots of
deprecations before libbpf 1.0 release. libbpf v0.8 should get a few
extra features helping with libbpf 1.0 migration, as well as the usual
stream of further improvements, but no major new deprecations are
planned so far. We are definitely getting pretty close to be ready for
the actual v1.0 release!

Thanks to all the contributors for pushing libbpf forward!


## Important updates towards Libbpf 1.0
  - no need for explicit `setrlimi(RLIMIT_MEMLOCK)` when
`LIBBPF_STRICT_AUTO_RLIMIT_MEMLOCK` is passed to
`libbpf_set_strict_mode()`. libbpf will determine whether this is
necessary automatically based on kernel's support for memcg-based
memory accounting for BPF;
  - legacy BPF map definitions (using `struct bpf_map_def`) are
deprecated when `LIBBPF_STRICT_MAP_DEFINITIONS` is passed to
`libbpf_set_strict_mode()`. Please use BTF-defined map definitions.
  - another batch of API deprecations.

## New features and APIs:
  - ability to control and capture BPF verifier log output on
per-object and per-program level;
  - CO-RE support and other improvements for "light skeleton";
  - further libbpf API documentation improvements;
  - new feature-probing APIs (`libbpf_probe_bpf_helper()`,
`libbpf_probe_bpf_prog_type()`, `libbpf_probe_bpf_map_type()`);
  - new streamlined low-level XDP APIs (`bpf_xdp_attach()`,
`bpf_xdp_detach()`, `bpf_xdp_query()`, `bpf_xdp_query_id()`);
  - new `SEC("xdp.frags")`, `SEC("xdp.frags/cpumap")`,
`SEC("xdp.frags/devmap")` section definitions;
  - new `SEC("iter.s/xxx")` section definitions for sleepable BPF
iterator programs.

## BPF-side APIs and features:
  - `bpf_loop()` helper;
  - `bpf_func_arg()`, `bpf_func_ret()`, `bpf_func_arg_cnt()` helpers;
  - added syscall-specific `PT_REGS_xxx()` macros for retrieving
syscall arguments;
  - added `BPF_KPROBE_SYSCALL()` helper macro for syscall kprobes;
  - `bpf_get_retval()` and `bpf_set_retval()` helpers;
  - `bpf_xdp_get_buff_len()` helper;
  - `bpf_copy_from_user_task()` helper for sleepable BPF programs.

## Bug fixes and compatibility improvements:
  - fixed compilation error for C++ due to `btf_dump__new()` macro magic;
  - improved `LINUX_VERSION_CODE` detection for Ubuntu;
  - improved multiple kprobe support for legacy kprobe mode on old kernels;
  - improved compilation when system BTF UAPI headers are outdated;
  - a bunch of fixes of `PT_REGS_PARMn*()` macros for various architectures.

**Full Changelog**: https://github.com/libbpf/libbpf/compare/v0.6.0...v0.7.0

  [0] https://github.com/libbpf/libbpf/releases/tag/v0.7.0

-- Andrii



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux