eBPF工具和调试

来源:芯启源

eBPF挂载到XDP中的驱动级别的钩子函数,在过去几年中越来越被重视。 因此,快速调试和诊断问题的能力愈发重要。本节将涵盖面临的常见问题及其诊断技术,包括使用bpftool进行映射和程序自省、使用反汇 编程序以检查生成的eBPF指令和使用调试打印等其他方法,以及当eBPF程序卸载到硬件时如何应用这些技术。

BPF硬件卸载

来源:芯启源

eBPF硬件卸载的第一个版本 于2016年10月纳入Linux内核,并成为Linux v4.9的一部分。在过去两年中,该技术在不断优化,以便与核心内核基础设施更紧密地集成,并支持更高级的用例。本节将阐明卸载内核架构的内部情况,以及 如何允许在硬件中无缝执行未经修改的eBPF数据路径。

BPF JIT编译器

来源:芯启源

本节将重点介绍eBPF JIT(即时编译器) 编译基础设施,及其如何在Linux内核内的整个 eBPF生命周期发挥重要作用。首先,它会进行大量控制流检查以拒绝易受攻击的程序,然后JIT编译器会将eBPF程序编译为主机或卸载目标指令,从而提高性能。

eBPF透明卸载:善用Linux内核

来源:芯启源

芯启源正在开发基于XDP和eBPF的透明内核加速器。该加速器支持使用上游的nfp_bpf_jit直接卸载用于内核应用程序的字节码。本节将重点介绍启动和运行XDP环境的基础知识和相关用例,并演示如何进行eBPF卸载 。

使用eBPF进行透明的HW加速

来源:芯启源

为实现在树状超大规模环境中以透明的方式使用智能网卡,需在内核中重复使用可编程基础设施,最合适的候选方案就是eBPF。本节将详细讲述eBPF卸载是如何实现的以及进行简单演示。

P4、eBPF和Linux TC卸载

来源:芯启源

本节主要介绍利用eBPF技术执行硬件加速的网络数据包处理和过滤处理。 可使用流量分类器(TC)子系统将P4程序编译成eBPF脚本,以便在Linux内核中进行卸载。本节还会详细演示如何使用eBPF作为桥梁来扩展TC,将eBPF代码JIT编译到x86汇编程序中进行软件卸载,或编译成IXP字节代码,以在芯启源Agilio智能服务器适配器的可信硬件环境中执行。

订阅芯启源简讯: