Linux性能分析与追踪工具全解析
1. 为BPF配置内核
BCC要求Linux内核版本为4.1或更高。目前,BCC仅支持少数64位CPU架构,这在很大程度上限制了BPF在嵌入式系统中的应用。不过,其中一种64位架构是aarch64,因此我们仍可以在树莓派4上运行BCC。以下是为树莓派4配置支持BPF的内核的步骤:
$ cd buildroot
$ make clean
$ make raspberrypi4_64_defconfig
$ make menuconfig
BCC使用LLVM来编译BPF程序。LLVM是一个大型的C++项目,因此它需要一个支持宽字符、线程等特性的工具链来进行构建。
有一个名为ply(https://github.com/iovisor/ply)的软件包于2021年1月23日被合并到Buildroot中,并应包含在Buildroot的2021.02 LTS版本中。ply是一个轻量级的Linux动态跟踪器,它利用BPF,允许在内核的任意点附加探针。与BCC不同,ply不依赖于LLVM,除了libc之外没有其他外部依赖,这使得它更容易移植到诸如arm和powerpc等嵌入式CPU架构上。
在为BPF配置内核之前,我们需要选择一个外部工具链并修改 raspberrypi4_64_defconfig
以适应BCC:
1. 导航到 Toolchain | Toolchain type | External toolchain
并选择该选项,启用外部工具链的使用。
2.