Re: [ANNOUNCEMENT] libbpf v0.6 release

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

 



On Wed, Dec 1, 2021 at 5:01 PM Andrii Nakryiko
<andrii.nakryiko@xxxxxxxxx> wrote:
>
> libbpf v0.6 was just released ([0]). This is a pretty big release with
> both new features and a whole bunch of API deprecations and clean ups.
> So please take a look and give it a try! And please report any issues
> and bugs we might have missed during preparation of this release.
>
> I'd like to also call out the documentation effort started by Grant
> Seltzer. Thank you! I encourage everyone to contribute to this effort
> so that the libbpf v1.0 release documentation is in a great shape.
>
> 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!
>
> ## Important updates towards Libbpf 1.0
>   - a first big batch of deprecated APIs; compiler will let you know
> or grep for "LIBBPF_DEPRECATED". Please also double-check
> https://github.com/libbpf/libbpf/wiki/Libbpf-1.0-migration-guide.
>   - documentation for a bunch of APIs added, available on
> https://libbpf.readthedocs.io/en/latest/api.html;
>   - libbpf version APIs added: compile-time
> `LIBBPF_MAJOR_VERSION`/`LIBBPF_MINOR_VERSION` and runtime
> `libbpf_major_version()`/`libbpf_minor_version()`/`libbpf_version_string()`;
>   - stricter logic for `SEC()` definition handling (opt-in until
> libbpf v1.0); see
> https://github.com/libbpf/libbpf/wiki/Libbpf:-the-road-to-v1.0#stricter-and-more-uniform-bpf-program-section-name-sec-handling
> for details.
>   - function name will be used when pinning if
> `LIBBPF_STRICT_SEC_NAME` strict mode flag is specified;
>
> ## New features and APIs:
>   - support custom `.rodata.*` and `.data.*` data sections;
>   - `bpf_program__attach_kprobe()` and `bpf_program__attach_uprobe()`
> supports older kernels now (don't forget about `bpf_link__destroy()`
> when you are done!);
>   - `BPF_MAP_TYPE_PROG_ARRAY` can be initialized statically with
> syntax similar to map-in-map initialization (see
> https://github.com/libbpf/libbpf/commit/472c0726e84d821186a315889c885b23895b155e
> for an example);
>   - libbpf-less "light" skeleton gained new capabilities and got a
> bunch of fixes;
>   - BTF support for `BTF_KIND_DECL_TAG` and `BTF_KIND_TYPE_TAG`;
>   - new `bpf_prog_load()` and `bpf_map_create()` APIs supersede a
> whole zoo of to-be-deprecated APIs;
>   - support for writable raw tracepoints (`SEC("raw_tp.w/...")`) added;
>   - `btf__add_btf()` API for appending entire contents of BTF to
> another BTF object;
>   - `bpf_program__insns()` and `bpf_program__insn_cnt()` to access
> underlying BPF assembly instructions; can be used for inspection or
> BPF program cloning.
>   - a bunch of older APIs (`perf_buffer__new()`, `btf__dedup()`,
> `btf_dump__new()`, etc) were modernized to use OPTS infrastructure.
>
> ## BPF-side APIs and features:
>   - unstable BPF helpers (kernel function calls) support for kernel modules;
>   - `bpf_trace_vprintk()` helper and corresponding `bpf_printk()`
> macro enhancements. Note, `bpf_printk()` will now attempt to use
> static global functions, so on very old kernels this might break
> existing programs. Please `#define BPF_NO_GLOBAL_DATA` before
> `#include <bpf/bpf_helpers.h>` if that's the case for you.
>   - `bpf_get_branch_snapshot()` helper;
>   - `bpf_skc_to_unix_sock()` helper;
>   - `bpf_find_vma()` helper;
>   - `SEC("tc")` added as a replacement for `SEC("classifier")`.
>
> ## Bug fixes and compatibility improvements:
>   - libbpf now guarantees that all FDs for BPF programs, maps, BTFs,
> and links are strictly greater than 0, which is important for some BPF
> UAPIs;
>   - no need to use `__uint(key_size, ...)` for special BPF maps (e.g.,
> `BPF_MAP_PERF_EVENT_ARRAY`). Libbpf automatically downgrades
> `__type(key, int)` into key_size, if a map doesn't support BTF types
> for keys and values;
>   - endianness fixes in `BPF_CORE_READ_BITFIELD_PROBED()` macro;
>   - `btf_dump__dump_type_data()` improvements for handling unaligned data;
>   - various fixes and improvements found though fuzzing and sanitizers.
>
> **Full Changelog**: https://github.com/libbpf/libbpf/compare/v0.5.0...v0.6.0
>
>   [0] https://github.com/libbpf/libbpf/releases/tag/v0.6.0
>
> -- Andrii

I've just cut libbpf v0.6.1 bugfix release, fixing two issues that
hopefully not many people will run into. Please see [1] for details.

  [1] https://github.com/libbpf/libbpf/releases/tag/v0.6.1



[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