1.4 Android下使能eBPF

写在前面

    由于eBPF可运行用户提供的eBPF程序来扩展内核,这些程序可以附加到内核中的探测点或事件,用于收集有用的内核统计信息,监控和调试。eBPF使用bpf(2)系统调用加载到内核中,并作为eBPF机器指令的二进制块由用户来提供。

    Android构建系统支持使用本文所述的build文件语法将C程序编译为eBPF程序。并且Android包含了一个eBPF加载器和库,这样Android可以在启动初始化阶段加载eBPF程序。

一,内核支持

    对比bcc的指导,以及实际从pixel 4xl的coral版本(android 12)的/proc/config.gz文件中所看到的,开启eBPF需要使能相关的配置项,如下BCC和Android的对比:

from /bcc/INSTALL.md from Android 12

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
# [optional, for tc filters]
CONFIG_NET_CLS_BPF=m
# [optional, for tc actions]
CONFIG_NET_ACT_BPF=m
CONFIG_BPF_JIT=y
CONFIG_HAVE_BPF_JIT=y
# [optional, for kprobes]
CONFIG_BPF_EVENTS=y

猜你喜欢

转载自blog.csdn.net/huangyabin001/article/details/130978977
1.4