eBPF Talk: Ubuntu 23.04 2024-04-03 eBPF eBPF Talk 约 335 字 预计阅读 1 分钟 Ubuntu 23.04 已在 4 月 20 日发布,可以到官网下载镜像安装到虚拟机,用来学习 eBPF。 Ubuntu 23.04 (Lunar Lobster) 使用的内核版本是 6.2.0-20-generic。 Ubuntu 23.04 的相关 阅读更多
eBPF Talk: introduce bpf_timer 2024-04-03 eBPF eBPF Talk 约 911 字 预计阅读 2 分钟 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 2024-04-03 eBPF eBPF Talk 约 1449 字 预计阅读 3 分钟 通过 Linux 网络: sequence file 的学习,我们知道在 Linux 里有不少地方都使用 sequence file 机制向用户态空间传递数据。 在 eBPF 的加持下,sequence file 机制迎来了更加灵活的实现 阅读更多
Linux 网络: netdevsim 2024-04-03 Linux 约 704 字 预计阅读 2 分钟 netdevsim,Netwoking Device Simulator,网络设备模拟器。 GitHub netdevsim netdevsim 就是用来模拟网络设备的,其实它是 Linux 里的一种网络设备驱动;可 阅读更多
Linux 网络: sequence file 2024-04-03 Linux 约 789 字 预计阅读 2 分钟 使用 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 支持有限循环 2024-04-03 eBPF eBPF Talk 约 215 字 预计阅读 1 分钟 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) 了。 阅读更多
eBPF Talk: challenge verifier 2024-04-03 eBPF eBPF Talk 约 2570 字 预计阅读 6 分钟 在 eBPF Talk: binary search 中,我们使用一个朴素的 for 循环实现了一个二分查找的 eBPF 程序,但是,这个程序通不过 verifier,报错 “R3 unbounded memory access, make sure to bounds check any such acces 阅读更多
eBPF Talk: binary search 2024-04-03 eBPF eBPF Talk 约 1244 字 预计阅读 3 分钟 其实,bpf 子系统里并没有一个叫 bpf_binary_search() 的 helper 函数。 但并不是说,在 eBPF 里就实现不了二分查找了。 小需求 怎么判断一个 IP 地址是否在某几个 CIDR 里? 已知方法有二: 阅读更多
eBPF Talk: bpf prog stats 2024-04-03 eBPF eBPF Talk 约 714 字 预计阅读 2 分钟 根据以下两个 commit,可以看到,自 5.1 内核起,bpf prog 可以统计自己的运行情况了。 bpf: enable program stats 5.1 kernel. bpf: Sharing bpf runtime stats with BPF_ENABLE_STATS 5.8 kernel. bpf: Improve program stats run-time calculation 6.x kernel. stats 例子 以 bpf2bpf demo 阅读更多
eBPF Talk: packet range check 2024-04-03 eBPF eBPF Talk 约 449 字 预计阅读 1 分钟 在 XDP 或者 tc-bpf 中,经常要直接访问网络包内容;而在访问网络包内容之前,总是需要先检查访问的内容是否在 data_end 之内。 So,学习一下 packet range check 相关 commit 的历史;以史 阅读更多