eBPF Talk: ringbuf 经验分享

最近在使用 ringbuf 的 bpf_ringbuf_reserve() 时踩了一个坑,记录一下。 ringbuf 简介 ringbuf 是 BPF 中能够取代 PERF_EVENT_ARRAY 的特殊 map 类型,提供了类似的 helpers: bpf_ringbuf_output(): 将数据写入 ringbuf。 bpf_ringbuf_reserve(): 为数据预留空间。 bpf_ringbuf_submit():

eBPF Talk: 给 x86 BPF JIT 做下优化

优化的地方如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c index 5159c7a229229..7c130001fbfe7 100644 --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c @@ -1234,13 +1234,11 @@ bool ex_handler_bpf(const struct exception_table_entry *x, struct pt_regs

eBPF Talk: 跟踪 ipv4 sysctl 配置变更

eBPF Talk: 跟踪 IRQ 绑核 eBPF Talk: 跟踪 RPS/XPS 配置变更 eBPF Talk: 跟踪 ipv4 sysctl 配置变更 实现了对 IRQ 绑核、RPS/XPS 配置变更后,接着是跟踪网卡的 net.ipv4.conf.*.* sysctl 的配置变更。 ipv4 sysctl 配置变更的

eBPF Talk: 使用 drgn 学习 bpf

drgn 是 Linux 系统可编程的调试器,基于 Python 脚本简单、便利地读取内核数据结构和变量。 理所当然地,drgn 可以用来学习 bpf,用来 inspect bpf map、bpf pro

eBPF Talk: 跟踪 RPS/XPS 配置变更

eBPF Talk: 跟踪 IRQ 绑核 eBPF Talk: 跟踪 RPS/XPS 配置变更 eBPF Talk: 跟踪 ipv4 sysctl 配置变更 既然实现了 eBPF Talk: 跟踪 IRQ 绑核,那么也实现一下跟踪 RPS/XPS 配置变更吧。 RPS/XPS 是什么?RPS 是 Receive Packet Stee