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

01 整体进展

本月高性能网络 SIG 的主要工作聚焦在 SMC 和 virtio 上。

本月关键进展:

  1. SIG 推进的 virtio device stats 特性本月正式合入上游 Linux 主线,为 virtio 用户提供丰富的设备统计信息。
  2. SIG 推进的 loopback-ism 特性本月正式合入上游 Linux 主线,提供了 OS 内通信的高效加速方式。

02 ANCK 内核网络

修复

ANCK 5.10 本月修复若干异常问题,主要问题包括:

修复了 tcf_skbmod_dump() 中内核栈泄漏的安全问题。(PR3058)

修复了构建 IPv6 PMTU时异常越界访问的问题。(PR2852)

修复了在特定架构下 ndisc_send_skb() 中可能出现访问未对齐内存警告的问题。(PR2849)

ANCK 4.19 修复了__skb_datagram_iter() 统一调用导致 kmap/kunmap 性能回退的问题。(PR3050)

03 SMC

本月高性能网络 SIG 在 SMC 领域的工作,主要聚焦在推动 SMC-D loopback-ism 合入上游。

loopback-ism

SMC 内核网络协议根据底层共享内存操作方式的不同分为基于 RDMA 设备的 SMC over RDMA(SMC-R) 和基于 ISM 设备的 SMC over DMA(SMC-D)。不同于 RDMA 技术,ISM 功能目前仅在 IBM z 系列大型机上提供,用于加速 CPC 内部通信。为了使 SMC-D 普惠,高性能网络 SIG 持续与 IBM 合作,使 SMCv2 协议支持软件实现的 Emulated-ISM。loopback-ism 就是一种 Emulated-ISM,配合 SMC-D 可提供同 OS 内部(进程间/容器间)的通信加速。本月经过 v5,v6,v7 三个版本的迭代,loopback-ism 系列补丁合入上游[1]。

04 virtio

本月高性能网络 SIG 在 virtio 领域的工作,主要聚焦在 virtio-net 支持 device states 和 ring resize。

Device States

Virtio-net 设备统计(device stats)是一个高效的机制,旨在提供设备在处理数据包时生成的详细统计数据,提升网络设备的运维监控能力。

过去,virtio-net 不支持获取后端设备的统计信息,从 Guest 内无法通过 ethtool -S 的方式获取到后端的统计信息,要获取到后端的异常信息,只能通过云厂商的监控系统来实现。基于 virtio-net 的设备统计方式,通过驱动的控制通道,用户可以访问 virtio 网卡提供的综合统计信息,涵盖从校验和错误、缓冲区溢出导致的数据包丢失到数据包合并处理以及设备正常处理请求等的各种情况。这些数据,特别是关于数据包丢失的信息,为用户提供了有效的故障定位和问题诊断的参考。

在之前的工作中,高性能网络 SIG 已经完成了相关的 spec 标准化工作。最新的进展是,virtio-net 设备统计正式在上游内核中得到了支持[2]。

Ring Resize

Virtio-net 的 "ring resize" 特性提供了一个机制,能够让用户在运行时动态调整网卡队列的大小,优化网络性能,特别是在特定场景中可以降低延迟和减少数据包丢失。这一调整过程通过用户空间的 “ethtool -G”命令实现,使得网络配置更为灵活。该特性建立在高性能网络 SIG 先前定义的 “virtio vq reset” 功能之上。此特性正在 ANCK-5.10 上回合 review 中[3]。

相关链接:

[1]https://lore.kernel.org/netdev/20240428060738.60843-1-guwen@l...

[2]http://lore.kernel.org/all/20240426033928.77778-1-xuanzhuo@li...

[3] https://gitee.com/anolis/cloud-kernel/pulls/3110

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

—— 完 ——


龙蜥社区
40 声望12 粉丝

OpenAnolis龙蜥社区由国内外头部企业联合建立的操作系统开源社区。