eBPF Talk: 给 pwru 添砖加瓦

近来,没怎么学习 eBPF,就给 pwru 做下贡献。 Replace objs with collection Support tracing tc-bpf Support tracking skb clones Accelerate attaching/detaching kprobes WIP Replace objs with collection 该 PR 重构了一下 pwru 中管理 bpf 对象的代码,将 bpf 对象的管理从 struct 改成 c

eBPF Talk: 手撕 XDP 程序

前段时间,老板让我 手撕 分析 一个陌生的 XDP 程序。 责任重过山头,莫敢推辞,只能硬着头皮上了。 陌生的 XDP 程序 没有源代码,且发现该 XDP 程序还没带上 debug 信息;

eBPF Talk: introduce kfuncs

通过 bpf: Support bpf program calling kernel function 学习 kfuncs 的实现。 不过,此 kfuncs 不是 bpftrace kfunc/kretfunc: Kernel Functions Tracing。bpftrace 的 kfunc 是的底层是 fentry/fexit。 BPF Kernel Functions (kfuncs) 该内核

eBPF Talk: tailcall in freplace 有 BUG

tailcall in freplace 有 BUG?真的?假的! 最近,偶然发现在 freplace 里使用 tailcall 有 BUG。尽管,我的同事早就发现了有问题,但不确定是不是内核的问题。所以,我就花了点时

eBPF Talk: 尝试 trace tailcall 程序?!

在 eBPF Talk: trace tailcall 程序?NO! 里,我们知道 tailcall 程序是不能直接使用 fentry/fexit 进行 trace 的。 如果通过内核模块,使用比较 hack 的方式,能否 trace tailcall 程序呢? TL;DR 能对静态 tailcall 进行 tra

eBPF Talk: introduce tracepoint

想弄清楚 tracepoint 的工作原理,实在太难了;网络上的资料比较少,而且不够深入,甚至是 kernel 文档。 Using the Linux Kernel Tracepoints 本文尝试从源代码的角度来分析 tracepoint 的工作原理。 抛砖引