eBPF Talk: cilium/ebpf 中 bpf map 的诞生 2023-05-20 eBPF eBPF Talk 约 537 字 预计阅读 2 分钟 在博客 eBPF Talk: 揭秘 BPF map 前生今世,已讲解了 bpf map 从定义到创建的整个过程。 不过博客中讲解的加载器是 C 语言的 libbpf。 在此,就讲解一下纯 Go 语言的加载 阅读更多
eBPF Talk: bpf map 源码导读 2023-01-04 eBPF eBPF Talk 约 899 字 预计阅读 2 分钟 eBPF map 有诸多类型。如果想要理解它们的实现,该如何去阅读它们的源代码呢? 类型接口 在内核的源代码海洋中,接口的定义一般是:结构体的字段都是函数指针 阅读更多
使用 drgn 查看网络设备的私有数据 2023-01-01 drgn 约 540 字 预计阅读 2 分钟 这是 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: syscalldist: raw tracepoint 实战 2022-12-22 eBPF eBPF Talk 约 796 字 预计阅读 2 分钟 bcc/libbpf-tools 里有许多使用 bcc 实现的小工具。 咱们也来实现一个类似的工具吧。 raw tracepoint 不同于 tracepoint,raw tracepoint 的资料较少。 关于 eBPF 进行 raw tracepoint 的资料更少: bpf, 阅读更多
eBPF Talk: 两个简单好用的 map 处理函数 2022-12-21 eBPF eBPF Talk 约 460 字 预计阅读 1 分钟 最近在用 eBPF 造轮子的时候,发现其中一个处理函数;而后,自己有样学样地封装了另外一个函数。 bpf_map_lookup_or_try_init 函数名称有点长。 该函数是用来查询某个 key 对应的 valu 阅读更多
eBPF Talk: 此汇编非彼汇编 2022-12-21 eBPF eBPF Talk 约 689 字 预计阅读 2 分钟 此汇编:在 C 代码里使用的 asm volatile 汇编代码。 彼汇编:eBPF verifier、JIT、runtime VM 等地方使用的汇编指令。 在文章 BPF 尾调用简介 里, 阅读更多
eBPF Talk: eBPF 尾调用简介 2022-11-24 eBPF eBPF Talk 约 1524 字 预计阅读 4 分钟 在 bpf2bpf 特性简介 中提及到 bpf_tail_call(),我们就认真学习一下它吧。 bpf_tail_call 从 4.2 内核版本开始,eBPF 支持了尾调用特性。 该特性的主要特点是 阅读更多
eBPF Talk: bpf2bpf 特性简介 2022-11-16 eBPF eBPF Talk 约 1156 字 预计阅读 3 分钟 最近才了解到 eBPF 里有 bpf2bpf 这个特性,故特意学习了一番。 bpf2bpf 简介 bpf2bpf 特性要求 4.16 内核版本,参考 BPF Features by Linux Kernel Version。 在 bpf2bpf 特性出现之前,eBPF 程序都要 阅读更多
eBPF Talk: BPF map 趣事一则 2022-11-13 eBPF eBPF Talk 约 588 字 预计阅读 2 分钟 有同事报告一个错误:lookup: cannot allocate memory,并请求如何解决。 lookup 项目中使用的 eBPF 库是 cilium/ebpf。查看一下 BPF map lookup 的源代码,如下 阅读更多
eBPF Talk: 为当前内核提供外部 BTF 文件 2022-11-06 eBPF eBPF Talk 约 547 字 预计阅读 2 分钟 最近系统地学习了 eBPF CO-RE(Compile Once, Run Everywhere,一次编译,到处运行),其中包括了 BTF。 BTF,BPF Type Format, 阅读更多