mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-07 17:19:07 +08:00
README: add BTF and CO-RE info
Add list of Linux distributions with kernel BTF built-in. Give few useful links to BPF CO-RE-related material to help users get started.
This commit is contained in:
committed by
Andrii Nakryiko
parent
20d9816471
commit
6e15a022db
47
README.md
47
README.md
@@ -52,7 +52,7 @@ $ PKG_CONFIG_PATH=/build/root/lib64/pkgconfig DESTDIR=/build/root make install
|
|||||||
```
|
```
|
||||||
|
|
||||||
Distributions
|
Distributions
|
||||||
=====
|
=============
|
||||||
|
|
||||||
Distributions packaging libbpf from this mirror:
|
Distributions packaging libbpf from this mirror:
|
||||||
- [Fedora](https://src.fedoraproject.org/rpms/libbpf)
|
- [Fedora](https://src.fedoraproject.org/rpms/libbpf)
|
||||||
@@ -74,8 +74,51 @@ Package dependencies of libbpf, package names may vary across distros:
|
|||||||
- zlib
|
- zlib
|
||||||
- libelf
|
- libelf
|
||||||
|
|
||||||
|
BPF CO-RE (Compile Once – Run Everywhere)
|
||||||
|
=========================================
|
||||||
|
|
||||||
|
Libbpf supports building BPF CO-RE-enabled applications, which, in contrast to
|
||||||
|
[BCC](https://github.com/iovisor/bcc/), do not require Clang/LLVM runtime
|
||||||
|
being deployed to target servers and doesn't rely on kernel-devel headers
|
||||||
|
being available.
|
||||||
|
|
||||||
|
It does rely on kernel to be built with [BTF type
|
||||||
|
information](https://www.kernel.org/doc/html/latest/bpf/btf.html), though.
|
||||||
|
Some major Linux distributions come with kernel BTF already built in:
|
||||||
|
- Fedora 31+
|
||||||
|
- RHEL 8.2+
|
||||||
|
|
||||||
|
If your kernel doesn't come with BTF built-in, you'll need to build custom
|
||||||
|
kernel. You'll need:
|
||||||
|
- `pahole` 1.16+ tool (part of `dwarves` package), which performs DWARF to
|
||||||
|
BTF conversion;
|
||||||
|
- kernel built with `CONFIG_DEBUG_INFO_BTF=y` option;
|
||||||
|
- you can check if your kernel has BTF built-in by looking for
|
||||||
|
`/sys/kernel/btf/vmlinux` file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ ls -la /sys/kernel/btf/vmlinux
|
||||||
|
-r--r--r--. 1 root root 3541561 Jun 2 18:16 /sys/kernel/btf/vmlinux
|
||||||
|
```
|
||||||
|
|
||||||
|
To develop and build BPF programs, you'll need Clang/LLVM 10+. The following
|
||||||
|
distributions have Clang/LLVM 10+ installed by default:
|
||||||
|
- Fedora 32+
|
||||||
|
- Ubuntu 20.04+
|
||||||
|
|
||||||
|
Otherwise, please make sure to update it on your system.
|
||||||
|
|
||||||
|
The following resources are useful to understand what BPF CO-RE is and how to
|
||||||
|
use it:
|
||||||
|
- [BPF Portability and CO-RE](https://facebookmicrosites.github.io/bpf/blog/2020/02/19/bpf-portability-and-co-re.html)
|
||||||
|
- [HOWTO: BCC to libbpf conversion](https://facebookmicrosites.github.io/bpf/blog/2020/02/20/bcc-to-libbpf-howto-guide.html)
|
||||||
|
- [libbpf-tools in BCC repo](https://github.com/iovisor/bcc/tree/master/libbpf-tools)
|
||||||
|
contain lots of real-world tools converted from BCC to BPF CO-RE. Consider
|
||||||
|
converting some more to both contribute to the BPF community and gain some
|
||||||
|
more experience with it.
|
||||||
|
|
||||||
License
|
License
|
||||||
=====
|
=======
|
||||||
|
|
||||||
This work is dual-licensed under BSD 2-clause license and GNU LGPL v2.1 license.
|
This work is dual-licensed under BSD 2-clause license and GNU LGPL v2.1 license.
|
||||||
You can choose between one of them if you use this work.
|
You can choose between one of them if you use this work.
|
||||||
|
|||||||
Reference in New Issue
Block a user