转载-bpf-Kernel Configuration for BPF Features
link:https://github.com/iovisor/bcc/blob/master/docs/kernel_config.md, https://github.com/iovisor/bcc/blob/master/docs/kernel_config.md
BPF 特性的内核配置
与 BPF 相关的内核配置
功能 | 内核配置 | 描述 |
---|---|---|
基础 | CONFIG_BPF_SYSCALL | 启用 bpf() 系统调用 |
CONFIG_BPF_JIT | BPF 程序通常由 BPF 解释器处理。此选项允许内核在加载程序时生成本地代码。这将显著加速 BPF 程序的处理 | |
CONFIG_HAVE_BPF_JIT | 启用 BPF 即时编译器 | |
CONFIG_HAVE_EBPF_JIT | 扩展 BPF JIT (eBPF) | |
CONFIG_HAVE_CBPF_JIT | 经典 BPF JIT (cBPF) | |
CONFIG_MODULES | 启用可加载内核模块的构建 | |
CONFIG_BPF | BPF VM 解释器 | |
CONFIG_BPF_EVENTS | 允许用户将 BPF 程序附加到 kprobe、uprobe 和 tracepoint 事件上 | |
CONFIG_PERF_EVENTS | 内核性能事件和计数器 | |
CONFIG_HAVE_PERF_EVENTS | 启用性能事件 | |
CONFIG_PROFILING | 启用分析器使用的扩展分析支持机制 | |
BTF | CONFIG_DEBUG_INFO_BTF | 从 DWARF 调试信息生成去重的 BTF 类型信息 |
CONFIG_PAHOLE_HAS_SPLIT_BTF | 为每个选定的内核模块生成 BTF | |
CONFIG_DEBUG_INFO_BTF_MODULES | 为内核模块生成紧凑的分割 BTF 类型信息 | |
安全 | CONFIG_BPF_JIT_ALWAYS_ON | 启用 BPF JIT 并删除 BPF 解释器以避免猜测执行 |
CONFIG_BPF_UNPRIV_DEFAULT_OFF | 通过设置默认禁用非特权 BPF | |
Cgroup | CONFIG_CGROUP_BPF | 支持将 BPF 程序附加到 cgroup 上 |
网络 | CONFIG_BPFILTER | 基于 BPF 的数据包过滤框架 (BPFILTER) |
CONFIG_BPFILTER_UMH | 使用内嵌的用户模式助手构建 bpfilter 内核模块 | |
CONFIG_NET_CLS_BPF | 基于可编程 BPF (JIT'ed) 过滤器进行数据包分类的基于 BPF 的分类器的替代方法 | |
CONFIG_BPF_STREAM_PARSER | 启用此功能,允许使用BPF_MAP_TYPE_SOCKMAP与TCP流解析器配合使用 | |
CONFIG_LWTUNNEL_BPF | 在路由查找入站和出站数据包后,允许作为下一跳操作运行BPF程序 | |
CONFIG_NETFILTER_XT_MATCH_BPF | BPF匹配将对每个数据包应用Linux套接字过滤器,并接受过滤器返回非零值的数据包 | |
CONFIG_IPV6_SEG6_BPF | 为支持BPF seg6local挂钩,添加IPv6 Segement Routing助手 参考 | |
kprobes | CONFIG_KPROBE_EVENTS | 允许用户通过ftrace接口动态添加跟踪事件(类似于tracepoints) |
CONFIG_KPROBES | 启用基于kprobes的动态事件 | |
CONFIG_HAVE_KPROBES | 检查是否启用了kprobes | |
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API | 如果架构支持从pt_regs访问寄存器和堆栈条目所需的API,则应该选择此符号。例如,基于kprobes的事件跟踪器需要此API | |
CONFIG_KPROBES_ON_FTRACE | 如果架构支持将pt_regs完全传递给函数跟踪,则在函数跟踪器上有kprobes | |
kprobe multi | CONFIG_FPROBE | 启用fprobe以一次性在多个函数上附加探测点 |
kprobe override | CONFIG_BPF_KPROBE_OVERRIDE | 启用BPF程序覆盖kprobed函数 |
uprobes | CONFIG_UPROBE_EVENTS | 启用基于uprobes的动态事件 |
CONFIG_ARCH_SUPPORTS_UPROBES | 架构特定的uprobes支持 | |
CONFIG_UPROBES | Uprobes是kprobes的用户空间对应项:它们允许仪器应用程序(如'perf probe')在用户空间二进制文件和库中建立非侵入性探测点,并在用户空间应用程序触发探测点时执行处理函数。 | |
Tracepoints | CONFIG_TRACEPOINTS | 启用在内核中插入Tracepoints并与问题函数连接 |
CONFIG_HAVE_SYSCALL_TRACEPOINTS | 启用系统调用进入/退出跟踪 | |
Raw Tracepoints | Same as Tracepoints | |
LSM | CONFIG_BPF_LSM | 使用BPF程序对安全钩子进行仪器化,实现动态MAC和审计策略 |
LIRC | CONFIG_BPF_LIRC_MODE2 | 允许将BPF程序附加到lirc设备 |
本文来自博客园,作者:LiYanbin,转载请注明原文链接:https://www.cnblogs.com/stellar-liyanbin/p/18585337
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统