高性能网络SIG月度动态:virtio 支持动态中断聚合,SMCv2.1协议正式发布

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

01

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

本月关键进展:

1. ANCK 5.10 上支持了 virtio NetDIM(动态中断调节)和 XDP csum 优化,提升龙蜥内核 virtio-net 网卡性能。

2. SMCv2.1 Emulated-ISM 特性随 SMCv2.1 release 4 白皮书正式发布,以允许 SMC-Dv2 支持除 s390 Z 平台 ISM 以外的类 ISM 设备。

02

ANCK 内核网络

修复

ANCK 5.10 本月共修复 7 个异常问题,预计进入下个版本,包括:

  • 修复 net/sched 中在特定场景下的内存泄漏问题。
  • 修复 tcp 双方同时握手场景下产生的 panic 问题。
  • 修复 netfilter 异常的错误处理导致的内存泄漏问题。
  • 修复 ovs 在 ovs_flow_tbl_lookup 中错误使用掩码导致 ovs-appctl 添加规则失败的问题。
  • 修复 ovs 异常的错误处理导致的内存泄漏问题。
  • 修复 virtio force_xdp 模块参数重新加载驱动时缺少 RSS 相关 feature 的问题。

  • 修复 smc 中的潜在 hung 问题。

安全

ANCK 5.10 共修复了 5 个 CVE,预计随 ANCK 5.10.134-16.3 版本发布,包括:
CVE-2023-4622、CVE-2023-6932、CVE-2023-28464、CVE-2023-39192、CVE-2023-6176。

ANCK 4.19 共修复了 5 个 CVE,预计随 ANCK 4.19.91-27 版本发布,包括:

CVE-2023-6932、CVE-2023-2002、CVE-2023-39192、CVE-2023-1390、CVE-2023-31083。

03

SMC
本月 SIG 在 SMC 上的工作主要集中在与上游沟通特性以及稳定性修复上。

SMCv2.1 Emulated-ISM 支持

本月 SIG 提议的 SMCv2.1 Emulated-ISM(旧称 virtual ISM)特性随 SMCv2.1 release 4 白皮书正式发布 (链接见文末) 。Emulated-ISM 特性允许 SMC-Dv2 支持除 s390 Z 平台 ISM 以外的类 ISM 设备。

上游稳定性修复

本月 SIG 修复 3 个稳定性问题:
  • SMC-R connection dump 在特定条件下的 crash:net/smc: fix invalid link access in dumping SMC-R connections。

  • SMC-D connection dump 竞争问题:net/smc: fix illegal rmb_desc access in SMC-D connection dump。

  • SMC-D link group 匹配逻辑错误:net/smc: fix incorrect SMC-D link group matching logic。

03

virtio
本月 SIG 在 virtio 上的工作主要集中于 checksum for xdp 和动态中断调节(NetDIM)上。

Checksum for XDP

virtio 网卡使用 VIRTIO_NET_F_GUEST_CSUM 特性,表明虚拟机支持接收部分校验和的报文和设备验证校验和的能力。但是,由于 XDP 程序可能会修改报文元数据,导致校验和出现错误并引发丢包问题,为了避免此问题,当 XDP 程序加载时,virtio 会禁用 VIRTIO_NET_F_GUEST_CSUM 的校验和卸载功能。这就意味着设备验证校验和的功能也被禁用,导致所有接收到的报文都必须在虚拟机内部重新进行校验和验证,这无疑增加了虚拟机 CPU 的计算负担。

为了解决这一问题,高性能网络小组对 virtio 规范进行了改进,从而在 virtio 框架上修复了这个缺陷。这项修复预计将随 ANCK 5.10.134-17 版本一起发布。基于这一改进,即使在 XDP 程序加载之后,设备的校验和处理能力仍然保持可用状态。这样,虚拟机就无需再次进行校验和验证,从而节约了 CPU 资源,提高了虚拟机的计算效率。

动态中断调节

在过去,virtio 网卡的一个限制是无法调整中断聚合参数,这意味着固定的聚合参数设置不足以灵活应对多样化的流量条件。例如,在高吞吐量环境下,过多的中断可能导致数据包丢失,而在低流量负载下,又可能不必要地增加了延迟。相比之下,Linux 上的主流物理网卡通常具备动态中断聚合能力,能依据实时的队列流量状况智能调整中断聚合参数,从而优化数据接收性能。

鉴于此,高性能网络团队在 virtio 规范更新后,为龙蜥社区的 ANCK 5.10 内核引入了 virtio 动态中断聚合功能。这一新增特性预期将包含在即将发布的 ANCK 5.10.134-17 版本中。需要注意的是,启用该功能必须有 virtio 后端设备的支持。

相关链接:

SMCv2.1 release 4 白皮书:

https://www.ibm.com/support/pages/node/7112343

高性能网络 SIG  主页:
https://openanolis.cn/sig/high-perf-network

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

—— 完 ——

加入龙蜥社群

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


关于龙蜥

龙蜥社区是立足云计算打造面向国际的 Linux  服务器操作系统开源根社区及创新平台。龙蜥操作系统(Anolis OS)是龙蜥社区推出的 Linux 发行版,拥有三大核心能力:提效降本、更加稳定、更加安全。
目前,Anolis OS 23 已发布,全面支持智能计算,兼容主流 AI 框架,支持一键安装 nvidia GPU 驱动、CUDA 库等,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。

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


本文分享自微信公众号 - OpenAnolis龙蜥(OpenAnolis)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部