bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [ANNOUNCEMENT] libbpf v0.5 release
@ 2021-09-08 23:24 Andrii Nakryiko
  0 siblings, 0 replies; only message in thread
From: Andrii Nakryiko @ 2021-09-08 23:24 UTC (permalink / raw)
  To: bpf, Kernel Team; +Cc: Alexei Starovoitov, Daniel Borkmann

libbpf v0.5 was just released ([0]). There are a lot of exciting new
features and APIs, so give them a try! And please report any issues
and bugs we might have missed during preparation of this release.

This is also the first official release with some of the upcoming
libbpf 1.0 features, which can be opted in through
`libbpf_set_strict_mode()` API. Please consider opting in early to
make sure your BPF applications are ready for libbpf 1.0 release and
will have a smooth transition.

Thanks a lot to all the contributors sending fixes and new features
and all the users asking and answering libbpf and BPF questions,
adopting and testing libbpf, and overall improving the BPF ecosystem!


## New features and user-space APIs:
  - `libbpf_set_strict_mode()` allowing to opt-in into backwards
incompatible libbpf-1.0 changes. See ["Libbpf: the road to
1.0"](https://github.com/libbpf/libbpf/wiki/Libbpf:-the-road-to-v1.0)
and ["Libbpf 1.0 migration
guide"](https://github.com/libbpf/libbpf/wiki/Libbpf-1.0-migration-guide)
for more details.
  - streamlined error reporting for low-level APIs, high-level
error-returning APIs, and pointer-returning APIs (as a libbpf-1.0
opt-in);
  - "Light" BPF skeleton support;
  - `BPF_PROG_TYPE_SYSCALL` support;
  - BPF perf link support for kprobe, uprobe, tracepoint, and
perf_event BPF programs;
  - BPF cookie support for kprobe, uprobe, tracepoint, and perf_event
BPF programs through `bpf_program__attach_[ku]probe_opts()` APIs;
  - allow to specify `ref_ctr_off` for USDT semaphores through
`bpf_program__attach_uprobe_opts()` API;
  - `btf_custom_path` support in `bpf_object_open_opts`, allowing to
specify custom BTF for CO-RE relocations;
  - `sk_reuseport/migrate` program type support;
  - `btf_dump__dump_type_data()` API, allowing to dump binary data
according to BTF type description;
  - `btf__load_into_kernel()` and `btf__load_from_kernel_by_id()`, and
split BTF variants of them;
  - `btf__load_vmlinux_btf()` and `btf__load_module_btf()` APIs;
  - `bpf_map__initial_value()` API to get initial value of mmap-ed BPF maps;
  - `bpf_map_lookup_and_delete_elem_flags()` API.


## BPF-side APIs and features:
  - support for weak typed `__ksym` externs;
  - BPF timer helpers: `bpf_timer_init()`, `bpf_timer_set_callback()`,
`bpf_timer_start()`, `bpf_timer_cancel()`;
  - `bpf_get_attach_cookie()` helper to get BPF cookie from BPF program side;
  - `bpf_get_func_ip()` helper;
  - `bpf_sys_bpf()` helper;
  - `bpf_task_pt_regs()` helper;
  - `bpf_btf_find_by_name_kind()` helper;
  - usability improvements for `bpf_tracing.h` when target
architecture is missing.


## Bug fixes and compatibility improvements:
  - improve BPF support detection on old Red Hat kernels with
backported BPF patches;
  - improvements for LTO builds with GCC 10+;
  - pass NLM_F_EXCL when creating TC qdisc;
  - better support of BPF map reuse on old kernels;
  - fix the bug resulting in sometimes closing FD 0, which wasn't
created and owned by libbpf itself.


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

-- Andrii

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-08 23:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-08 23:24 [ANNOUNCEMENT] libbpf v0.5 release Andrii Nakryiko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).