高性能网络 SIG 月度动态: 推进 SMC 支持基于 eBPF 透明替换和内存水位限制等多项功能支持
本次月报总结了 SIG 在 9 月和 10 月的工作进展,聚焦在 ANCK 网络安全和稳定性问题修复以及 SMC 新特性的推进。
一、关键进展
1. 完成上游 SMC 共享内存使用统计的支持,并回合到 ANCK 5.10。
2. 推进上游 SMC 基于 eBPF 透明替换功能的合入。
3. 完成 ANCK 5.10 中 SMC 共享内存水位限制功能的开发与合入。
4. 修复 ANCK 通用内核网络和 SMC 的多个安全及稳定性问题。
二、ANCK 通用内核网络协议栈
修复
ANCK 5.10 内核修复了如下问题,预计随 018 版本发布:
修复 netem qdisc 可能出现 UAF 的问题。(PR3824,PR3835)
修复 sockmap 可能引起 soft lockup 的问题。(PR4000)
修复 qdisc 的一处 panic 风险。(PR4003)
安全
ANCK 5.10 修复了如下 CVE,预计随 018 版本发布:
三、SMC
双月 SMC 相关工作聚焦于上游共享内存统计和 eBPF 透明替换特性的推动,以及 ANCK 中的内存水位限制特性开发和稳定性问题修复。
共享内存统计
上游 SMC 的统计指标中缺少对 LGR 当前持有的共享内存的统计,为此 SIG 向上游 Linux 内核[1]和 smc-tools 用户态工具[2]提交 LGR 和 net namespace 维度共享内存使用统计功能,目前均已合入。相关内核补丁也已回合至 ANCK 内核[3],自 5.10-17.3 版本后携带。
eBPF 透明替换
一直以来,上游 SMC 仅提供了 smc_run 这一进程维度透明替换 TCP 的功能,但这种方式存在静态链接程序不可用以及替换维度单一的问题。因此 SIG 向上游提交了基于 eBPF 的灵活替换方案[4],旨在提供多种维度(如 netns 或进程)透明替换以及基于端口等策略灵活替换 TCP 的能力。
共享内存水位限制
SMC 使用共享内存通信来获得更好的网络性能,但也带来一定的内存压力。因此 SIG 向 ANCK 5.10 提交了 SMC 共享内存水位限制的功能[5],用户可通过 sysctl 设置 node 或 net namespace 维度的共享内存使用上限,达到上限后将回退回 TCP,以避免过多的内存消耗。此特性自 5.10-17.3 版本后携带,目前属于预览特性,后续将推动贡献到上游。
稳定性问题修复
修复了 ANCK 5.10 SMC 中内存泄漏[6]相关问题。
相关链接:
[1]https://lore.kernel.org/netdev/20240814130827.73321-1-guwen@linux.alibaba.com/
[2] https://github.com/ibm-s390-linux/smc-tools/pull/11
[3] https://gitee.com/anolis/cloud-kernel/pulls/3766
[4]https://lore.kernel.org/netdev/1729737768-124596-1-git-send-email-alibuda@linux.alibaba.com/
[5] https://gitee.com/anolis/cloud-kernel/pulls/3894
[6] https://gitee.com/anolis/cloud-kernel/pulls/3847
注:更多龙蜥 SIG 月度动态可点击这里查看。
高性能网络 SIG(Special Interest Group) :在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络兴趣组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,结合软硬件一体化的思想,打造高性能网络协议栈,提升云计算时代数据中心应用的网络性能。
高性能网络 SIG 主页:https://openanolis.cn/sig/high-perf-network
—— 完 ——
版权声明: 本文为 InfoQ 作者【OpenAnolis小助手】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a7560d014aa70bc7b0a2c23f】。文章转载请联系作者。
评论