eBPF Talk: CPUMAP 简介

文摘   2024-09-30 08:10   新加坡  

CPUMAP 是 BPF 里的一种特殊的 bpf map 类型,且应该是 XDP 专用的。CPUMAP 的作用是将网络包从一个 CPU core 上的 XDP 程序重定向到另一个 CPU core 上去处理;类似于 Scaling in the Linux Networking Stack[1] 里的 RSSRPS 的功能。

CPUMAP 工作原理简介

CPUMAP 工作原理

如上图,CPUMAP 的工作原理是这样的:

  1. XDP 程序通过 bpf_redirect_map() 函数将网络包重定向到 CPUMAP 中指定的 core 上;
  2. 该 CPUMAP 里的 key 是目标 CPU core 的编号;
  3. 对应 core 会用一个 queue 来接收重定向过来的网络包;
  4. 对应 core 会运行一个专门处理 queue 中网络包的 kthread 内核线程。

更详细的 CPUMAP 讲解,请订阅知识星球查看,包含在 “XDP 进阶手册” 专栏里

eBPF Talk 知识星球

XDP 进阶手册

XDP 进阶手册
参考资料
[1]

Scaling in the Linux Networking Stack: https://www.kernel.org/doc/Documentation/networking/scaling.txt

eBPF Talk
专注于 eBPF 技术,以及 Linux 网络上的 eBPF 技术应用