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 支持了尾调用特性。 该特性的主要特点是

eBPF Talk: bpf2bpf 特性简介

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