高性能网络SIG月度动态:SMC loopback 完成协议支持及 virtio-net 统计能力增强

简介: 一键查收高性能网络 SIG 最新进展。

高性能网络 SIG(Special Interest Group)在云计算时代,软硬件高速发展,云原生、微服务等新的应用形态兴起,让更多的数据在进程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演着前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络兴趣组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,结合软硬件一体化的思想,打造高性能网络协议栈,提升云计算时代数据中心应用的网络的性能。

01 2023 年度总结

2023 年我们在 SMC 和 virtio net 上做了大量优化和增强,提升了 SMC 和 virito net 的可靠性、可用性和性能,包括但不限于以下特性及增强:

  • virtio XDP socket zerocopy
  • virtio-net XDP multibuffer 支持
  • virtio-net 中断合并,NetDIM 支持
  • virtio-net inner hash 隧道协议支持
  • virtio-net RSS 能力增强支持
  • virtio-net device stats 能力支持
  • SMC fallback 性能优化
  • SMC IP protocol 的支持
  • SMC 多项协议拓展,如 Single Link 支持、Link group 连接数量协商、拓展字段等
  • SMC ebpf 动态、细粒度 TCP 到 SMC 替换能力支持
  • SMC loopback 本地共享内存设备支持

除此之外,SIG 组修复了大量的龙蜥内核的 bug 和 CVE,其中 CVE 120 个。同时,SIG 同学积极参与 upstream 的工作,有 4 位同学正式成为上游 Linux 内核的 reviewer。

02 整体进展

本月高性能网络 SIG 的主要工作聚焦在 ANCK 内核网络、SMC 以及 Virtio 上。

本月关键进展:

1.SMC 支持虚拟 ISM 设备的补丁集正式合入 Linux 特性分支,允许 SMC-D 在非 s390 ISM 设备上加速 TCP 通信。

2.SIG 发起的 virtio specification 修复了自 2011 年存在的校验和问题,支持 virtio 加载 XDP 的场景中避免重复验证校验和节省虚拟机 CPU 利用率。

3.SIG 正在持续推进 Linux 支持 virtio 设备状态统计,允许虚拟机获取后端设备例如丢包原因等统计信息,便利网络问题定位。

03 ANCK 内核网络

3.1 安全

本月总计处理了 5 个 CVE 修复,预计进入版本 ANCK 4.19.91-027.8 和 ANCK 5.10.134-016.3。CVE 列表:

  • CVE-2023-39192
  • CVE-2023-2002
  • CVE-2023-28464
  • CVE-2023-6176
  • CVE-2023-3776

3.2 SMC

本月 SMC 工作主要集中在上游社区 SMCv2.1 虚拟 ISM 特性支持和稳定性问题修复上。

3.2.1 SMCv2.1 虚拟 ISM 设备支持

IBM SMCv2.1 中引入 SIG 提议的虚拟 ISM 设备支持特性作为 supplemental feature,使 SMC-D 可以配合其他非 s390 ISM 设备使用,在 IBM Z 平台以外系统上加速 TCP 通信。SIG 在本月提交到上游社区的虚拟 ISM 设备代码实现被合入到上游 net-next 分支:https://lore.kernel.org/netdev/20231219142616.80697-1-guwen@linux.alibaba.com/

3.2.2 上游 SMC 稳定性修复

本月 SIG 修复上游 2 个稳定性问题:

1.CLC 消息字节序修复:https://lore.kernel.org/netdev/1701882157-87956-1-git-send-email-guwen@linux.alibaba.com/

2.SMC-R 连接 dump 非法访问修复:https://lore.kernel.org/netdev/1703662835-53416-1-git-send-email-guwen@linux.alibaba.com/

3.2.3 Virtio

本月 virtio 工作主要聚焦于 device stats、virtio XDP checksum 和 virtio batch 请求优化上面。

device stats

virtio-net 设备上,过去我们没法拿到后端设备的一些统计信息,只能通过云厂商自定义接口来获取,而这些信息对于用户分析网络问题很有意义。高性能网络 SIG 基于之前已经推进成功的 virtio 规范,正在向 Linux 社区推进代码实现:

https://lore.kernel.org/all/20231226073103.116153-1-xuanzhuo@linux.alibaba.com/

virtio checksum 和 XDP 共存

高性能网络 SIG 为了支持 virtio checksum 和 XDP 共存过去作出了很多努力,包括[1]重新探测校验和的方法,[2] virtio 和其他网卡校验和现状 Survey,[3] 添加新的 feature bit 来指示 virtio 只交付新的 fully checksummed packets 等方法,这些方法都因为难以覆盖所有 corner 场景和没有从根本上解决问题而失败。最终,高性能网络 SIG 和 Linux 社区共同探讨出了最终的解决方案,并修复 virtio 自 2011 年来存在的长达10+年之久的 bug。该修复提案等待社区投票通过后,意味着后续我们就可以在 virtio 使用 XDP 的场景中,无需 guest os 重新验证校验和了!这会为 guest 节省最多 10+% cpu 利用率。

[1] https://lore.kernel.org/all/20230628030506.2213-1-hengqi@linux.alibaba.com/

[2] https://lists.oasis-open.org/archives/virtio-dev/202305/msg00291.html

[3] https://lore.kernel.org/all/7686cc30-8ec9-4320-8cc3-c39e9ca3de25@linux.alibaba.com/

virtio batch 请求

virtio 目前已经支持 netdim 功能,但是如果想最大限度发挥其能力,还需要对 virtio 作出优化。

virtio 目前更新设备配置的方式是通过 ctrlq,而 ctrlq 是一种轮询等待的机制,若后端持续不响应这些命令请求,会导致 guest cpu 空转,浪费资源。另外,netdim 配置设备的请求次数较多,频繁的 kick 设备会造成设备 cpu 资源紧张,并且加多设备 DMA 描述符的次数。针对上述两个问题,高性能网络小组提出 batch request 和 batch command 两种批量操作,极大的缓解了上述问题。

目前,高性能网络小组尝试标准化 batch request 方式,目前正在推进 virtio specification。

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。

关于龙蜥

龙蜥社区是立足云计算打造面向国际的 Linux  服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。


目前,Anolis OS 23 已发布,全面支持智能计算,兼容主流 AI 框架,支持一键安装 nvidia GPU 驱动、CUDA 库等,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

加入我们,一起打造面向云时代的操作系统!

相关文章
|
11月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
365 18
linux网络统计信息和端口占用情况基本语法
linux网络统计信息和端口占用情况基本语法
|
IDE Linux 开发工具
从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决
从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决
|
数据挖掘 Windows
【服务器数据恢复】服务器迁移数据时数据丢失的数据恢复案例
一台安装Windows操作系统的服务器。工作人员在迁移该服务器中数据时突然无法读取数据,服务器管理界面出现报错。经过检查发现服务器中一个lun的数据丢失。
|
10月前
|
弹性计算 Linux 网络安全
阿里云服务器迁移中心SMC实战指南:跨平台业务迁移教程参考
现在越来越多的个人和企业用户选择将其他云平台或者服务商的业务迁移到阿里云,但是如何快速且安全完成迁移是很多用户比较关注的问题,我们可以选择使用阿里云提供的服务器迁移中心(Server Migration Center,简称SMC),这个产品是阿里云提供给您的迁移平台,专注于提供能力普惠、体验一致、效率至上的迁移服务,满足您在阿里云的迁移需求。本文为大家展示使用阿里云服务器迁移中心SMC将其他云平台业务迁移至阿里云的教程,以供参考。

热门文章

最新文章