eBPF Talk: 解密 XDP generic 模式

近期又得搞 XDP 了,就顺手研究了下 XDP generic 模式的源代码。 XDP generic 模式的函数位置 已知,内核协议栈会对每个 skb 都执行一次 XDP generic 模式处理,当然是启用了 XDP generic 模式的情

eBPF Talk: 好用的 histogram

最近 eBPF 轮子造的多了后,发现需要用 histogram 的时候,要写的代码就一个模板,如下。 以下内容以 syscalldist 为例。 用于 histogram 的 C 代码 参考(抄袭) libbpf-tools 里 histogram 的实现,用于 histogram 的 C 代

eBPF Talk: bpf2bpf 特性揭秘

在 eBPF Talk: bpf2bpf 特性简介 中已介绍了 bpf2bpf 特性,同时有 demo 介绍该怎么使用该特性。 在该特性神秘面纱的背后,到底是怎样的呢?让我娓娓道来。 编译阶段 不懂编译器 clang 中

eBPF Talk: bpf map 源码导读

eBPF map 有诸多类型。如果想要理解它们的实现,该如何去阅读它们的源代码呢? 类型接口 在内核的源代码海洋中,接口的定义一般是:结构体的字段都是函数指针

使用 drgn 查看网络设备的私有数据

这是 drgn 的一个使用例子。 最近在追踪一个 veth 网络设备的问题的时候,发现需要查看 veth 网络设备的 netdev_priv() 获取的私有数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

eBPF Talk: eBPF 尾调用简介

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