eBPF Talk: trace bpf2bpf 函数调用

如 trace XDP/tc-bpf 程序,bpf2bpf 函数调用也是可以被 trace 的。 eBPF Talk: trace XDP 程序 eBPF Talk: trace tc-bpf 程序 eBPF Talk: trace bpf2bpf 函数调用 eBPF Talk: trace freplace 程序 eBPF Talk: trace tailcall 程序?NO! eBPF Talk: trace kprobe 程序 eBPF Talk: trace

eBPF Talk: trace tc-bpf 程序

如 eBPF Talk: trace XDP 程序,使用 bpf 也是能够对 tc-bpf 程序进行 trace 的。 eBPF Talk: trace XDP 程序 eBPF Talk: trace tc-bpf 程序 eBPF Talk: trace bpf2bpf 函数调用 eBPF Talk: trace freplace 程序 eBPF Talk: trace tailcall 程序?NO! eBPF Talk: trace kprobe 程序 eBPF Talk: trace tracepoint

eBPF Talk: trace XDP 程序

在 XDP 程序运行起来后,特别是在生产环境中,有没有办法去观察它的运行情况呢?特别是 XDP 程序的最终结果。 将问题泛化一下,即有没有办法去 trace bpf 程序? TL;DR 有

eBPF Talk: Ubuntu 23.04

Ubuntu 23.04 已在 4 月 20 日发布,可以到官网下载镜像安装到虚拟机,用来学习 eBPF。 Ubuntu 23.04 (Lunar Lobster) 使用的内核版本是 6.2.0-20-generic。 Ubuntu 23.04 的相关

eBPF Talk: introduce bpf_timer

bpf_timer 是 eBPF 里基于 hrtimer 实现的定时器。 hrtimers - subsystem for high-resolution kernel timers LWN bpf: Introduce BPF timers. bpf: Introduce bpf timers. since 5.15 kernel bpf_timer 最初的需求是在 perf events bpf prog 中做定期采样;后来在 XDP 中可以用来做垃圾回收和健康检

eBPF Talk: introduce bpf_iter

通过 Linux 网络: sequence file 的学习,我们知道在 Linux 里有不少地方都使用 sequence file 机制向用户态空间传递数据。 在 eBPF 的加持下,sequence file 机制迎来了更加灵活的实现

Linux 网络: netdevsim

netdevsim,Netwoking Device Simulator,网络设备模拟器。 GitHub netdevsim netdevsim 就是用来模拟网络设备的,其实它是 Linux 里的一种网络设备驱动;可

Linux 网络: sequence file

使用 ss、netstat 等命令查看 TCP 连接信息时,它们可能会从文件 /proc/net/tcp 读取 tcp socket 信息。 1 2 3 4 $ strace netstat -4 -t ... open("/proc/net/tcp", O_RDONLY) = 3 ... 而使用 file 命令查看 /proc/net/tcp 文件时,提示

eBPF Talk: verifier 支持有限循环

verifier 支持有限循环后,我们不再需要 #pragma unroll 将 for 循环展开了,留给 clang 编译器决定即可。 bpf: introduce bounded loops since 5.3 kernel. 也就是,eBPF Talk: binary search 里的 __should_delay_sip() 函数里不再需要 #pragma clang loop unroll(full) 了。