eBPF Talk: kprobe 获取第 n 个参数 2024-03-29 eBPF eBPF Talk 约 1234 字 预计阅读 3 分钟 此次来填 eBPF Talk: skbtracer-iptables 中的坑了:在开发一个基于 eBPF 的 iptables TRACE 的替代工具。 不过,遇到的第一个纸老虎是 kprobe 中获取 nf_log_trace() 的诸多参数。 nf_log_trace() 且看下函数声明: 1 2 3 4 5 6 7 8 阅读更多
eBPF Talk: syscalldist 与 bpfsyscalldist 2024-03-29 eBPF eBPF Talk 约 1005 字 预计阅读 3 分钟 因为 XDP ACL 需要不断操作数据面的 XDP,担心 Go 代码逻辑会导致一些性能问题,所以参考 syscalldist 开发了一个专门针对 BPF 系统调用的 bpfsyscalldist。 阅读更多
eBPF Talk: kprobe, frace 与 trampoline 2024-03-29 eBPF eBPF Talk 约 493 字 预计阅读 1 分钟 听闻 ftrace 也是基于 trampoline 实现的。而且,最近打算使用 kprobe 开发个工具,所以就将快速翻看了一下 ftrace 和 kprobe 的底层源代码。 P.S. 不介绍 ftrace 的使用,使用文档请看 ftrace - Function Tra 阅读更多
eBPF Talk: skbtracer-iptables 2024-03-29 eBPF eBPF Talk 约 501 字 预计阅读 1 分钟 可还曾记得 skbtracer 内核网络包跟踪工具? skbtracer: Linux 内核网络包路径追踪利器,Go 语言版本 这是我刚学习 eBPF 不久就开发的工具,不过更多时候是向 skbtracer 和 pwru 这两个网络包跟 阅读更多
eBPF Talk: 共享的 tailcall PROG_ARRAY bpf map 2023-08-22 eBPF eBPF Talk 约 841 字 预计阅读 2 分钟 在研究 eBPF Talk: trace tailcall 程序?NO! 时,产生了疑惑: 静态 tailcall 使用的 PROG_ARRAY bpf map 能在多个进程之间共享吗? TL;DR 能。且在更新 PROG_ARRAY bpf map 时,会更新静态 tailcall 的所有 bpf prog。 eBPF 阅读更多
eBPF Talk: 更新 tailcall PROG_ARRAY bpf map 2023-08-22 eBPF eBPF Talk 约 1113 字 预计阅读 3 分钟 在上一集 eBPF Talk: 动态或静态 tailcall 中,我们知道了 tailcall 有动态和静态之分。 对于动态 tailcall 而言,更新 PROG_ARRAY bpf map 时就比较简单,只需要更新一下 array->ptrs 数组即可。 但对于静态 tailcall 而言 阅读更多
eBPF Talk: 动态或静态 tailcall 2023-08-22 eBPF eBPF Talk 约 1352 字 预计阅读 3 分钟 动态 tailcall?静态 tailcall?为什么 tailcall 会有动静之分呢? 其实,就是看在使用 bpf_taill_call() 时,传入的 index 参数是常量还是变量。 动态 tailcall 在使用 bpf_tail_call() 时,传 阅读更多
eBPF Talk: trampoline stack on x86【汇编慎入】 2023-05-23 eBPF eBPF Talk 约 1279 字 预计阅读 3 分钟 本系列是 x86 架构平台上 trampoline 的实现,从原理和实现上进行了详细的介绍。 eBPF Talk: poke on x86【汇编慎入】 eBPF Talk: perilogue on x86【汇编慎入】 eBPF Talk: freplace on x86【汇编慎入】 阅读更多
eBPF Talk: trampoline on x86【续】【汇编慎入】 2023-05-23 eBPF eBPF Talk 约 575 字 预计阅读 2 分钟 本系列是 x86 架构平台上 trampoline 的实现,从原理和实现上进行了详细的介绍。 eBPF Talk: poke on x86【汇编慎入】 eBPF Talk: perilogue on x86【汇编慎入】 eBPF Talk: freplace on x86【汇编慎入】 阅读更多
eBPF Talk: trampoline on x86【汇编慎入】 2023-05-23 eBPF eBPF Talk 约 1395 字 预计阅读 3 分钟 本系列是 x86 架构平台上 trampoline 的实现,从原理和实现上进行了详细的介绍。 eBPF Talk: poke on x86【汇编慎入】 eBPF Talk: perilogue on x86【汇编慎入】 eBPF Talk: freplace on x86【汇编慎入】 阅读更多