当前位置: 首页 > article >正文

高性能网络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 版本发布:

CVE-2024-36889(PR3942)

CVE-2024-36883(PR3941)

CVE-2024-46771(PR3898)

CVE-2024-46783(PR3899)

CVE-2024-46679(PR3925)

CVE-2024-46679(PR3925)

CVE-2024-46800(PR3835)

CVE-2024-41040(PR3885)

CVE-2024-45018(PR3881)

CVE-2024-44934(PR3935)

CVE-2024-36971(PR3934)

CVE-2024-44987(PR3880)

CVE-2024-42284(PR3926)

CVE-2024-44974(PR3928)

CVE-2024-43861(PR3875)

CVE-2024-43879(PR3932)

CVE-2024-42271(PR3930)

三、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][PATCH net-next v3 0/2] net/smc: introduce ringbufs usage statistics - Wen Gu

[2] https://github.com/ibm-s390-linux/smc-tools/pull/11

[3] net/smc: backport upstream feature: 'introduce ringbufs usage statistics' · Pull Request !3766 · anolis/cloud-kernel - Gitee.com

[4][PATCH bpf-next 0/4] net/smc: Introduce smc_bpf_ops - D. Wythe

[5] net/smc: introduce two sysctls for SMC-R memory limitation · Pull Request !3894 · anolis/cloud-kernel - Gitee.com

[6] anolis: net/smc: Fix memleak in percpu ref · Pull Request !3847 · anolis/cloud-kernel - Gitee.com

注:更多龙蜥 SIG 月度动态可点击这里查看。

高性能网络 SIG(Special Interest Group) :在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络兴趣组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,结合软硬件一体化的思想,打造高性能网络协议栈,提升云计算时代数据中心应用的网络性能。

高性能网络 SIG 主页:High Performance Network SIG - OpenAnolis龙蜥操作系统开源社区

—— 完 ——


http://www.kler.cn/a/406499.html

相关文章:

  • 全面解析 java.lang.ClassCastException 异常
  • AmazonS3集成minio实现https访问
  • PG的并行查询
  • 对象:是什么,使用,遍历对象,内置对象
  • Linux驱动开发快速入门——字符设备驱动(直接操作寄存器设备树版)
  • 【强化学习的数学原理】第02课-贝尔曼公式-笔记
  • 在线pdf转word免费工具
  • AI科技赋能,探索人力资源管理软件的高效应用
  • C++11异步操作——std::future
  • 即时通讯app入侵了 怎么办?
  • 浦语提示词工程实践(LangGPT版,服务器上部署internlm2-chat-1_8b,踩坑很多才完成的详细教程,)
  • IAR与鸿轩科技共同推进汽车未来
  • 实验07---7-03 n个数存入数组,输出下标奇数的元素
  • 代理IP:苹果Siri与ChatGPT Plus融合的关键助力
  • Android上运行Opencv(TODO)
  • 机器学习周志华学习笔记-第3章<线性模型>
  • 【阅读记录-章节3】Build a Large Language Model (From Scratch)
  • 掌上单片机实验室 – RT-Thread + ROS2 初探(25)
  • 【FTHR-G0001开发板测评】简介、程序测试
  • 不用 SQL 的数据仓库
  • leetcode-11-盛最多水的容器
  • 使用 Java Stream 优雅实现List 转化为Map<key,Map<key,value>>
  • 6、PyTorch中搭建分类网络实例
  • 对抗样本存在的原因
  • 鸿蒙NEXT开发-Navigation组件导航
  • 用 Python 写了一个俄罗斯方块小游戏(附源码)