eBPF Talk: eBPF 尾调用简介

在 bpf2bpf 特性简介 中提及到 bpf_tail_call(),我们就认真学习一下它吧。 bpf_tail_call 从 4.2 内核版本开始,eBPF 支持了尾调用特性。 该特性的主要特点是

eBPF Talk: bpf2bpf 特性简介

最近才了解到 eBPF 里有 bpf2bpf 这个特性,故特意学习了一番。 bpf2bpf 简介 bpf2bpf 特性要求 4.16 内核版本,参考 BPF Features by Linux Kernel Version。 在 bpf2bpf 特性出现之前,eBPF 程序都要

eBPF Talk: CPU and NUMA

在现代的服务器中,基本上 CPU 采用的都是多核 NUMA 架构。对于网络而言,一个网络包从物理网卡驱动出来之后,并到达对应的应用层 socket,最好都在同一

eBPF Talk: 宏的两种写法

宏是 C 语言中最强大的语言特性,能够用来简化 eBPF 的 C 代码;毕竟 eBPF 的 C 代码是一种语法、语义都受限的 C 代码,不能像普通 C 代码那样“肆意妄为”。 写法一

eBPF Talk: 变量声明的位置

据了解(未查证),从 clang12 开始,eBPF 代码中的变量声明不再要求写在函数体的最前方,而是可以按需声明并初始化。 写法一:一次性声明全部的变量 1 2 3