查看原文
其他

高性能网络 SIG 月度动态:推动 virtio 支持动态中断调节及更灵活的分流机制

高性能网络 SIG OpenAnolis龙蜥 2023-11-30

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

01

SIG 整体进展

本月高性能网络 SIG 的主要工作聚焦在 virtio 对 NetDIM 的支持以及多个 virtio 提案的发起。

本月关键进展:

1. SIG 推动完成了 NetDIM 的 virtio 标准和 OS 代码,修复了多个上游问题并在 sockperf benchmark 中获得 20%+ 的吞吐提升。

2. SIG 与 Nvidia、Marvell 等合作发起了 [PATCH requirements v5 5/7] net-features: Add n-tuple receive flow filter]() 的提案,让 virtio 支持接收流过滤的能力,提供灵活的流规则配置方法。以及 [PATCH v2] virtio-net:support the RSS context]() 提案,使 virtio 支持多个 RSS (Receive Side-Scaling) 配置上下文。
02

ANCK

安全

本月网络方向共计修复 9 个 CVE,覆盖 sched/ipvlan/ipv6/netfilter/xfrm 等模块,CVE 列表:

CVE-2023-3609、CVE-2023-3611、CVE-2023-3090、CVE-2023-2156、CVE-2023-3773、CVE-2023-3776、CVE-2023-3812、CVE-2023-3390、CVE-2023-4147。

03

SMC

本月高性能网络 SIG 在 SMC 领域的工作主要聚焦在上游 SMC-D 虚拟设备拓展方案的推动。

SMC-D 虚拟设备拓展

SMC-D 被用于物理机内部的 SMC 加速,在过去只能配合 IBM s390 架构中的 ISM 设备使用。SIG 积极推动 SMC-D 虚拟设备拓展,以便于在其他架构中享受 SMC-D 带来的性能提升。

本月的 SMC 开发者会议上确定了使用 UUID 作为 SMC-D 虚拟设备的 GID,从而在无中心的情况下确保虚拟设备 GID 的唯一性。在 Linux 中将使用最为常用的 UUIDv4 作为 SMC-D loopback 等虚拟设备 GID 的实现方式。此外,除 0-0x7FFF 以外的 VCHID 将预留 4K 个给 SMC-D 虚拟设备,以帮助 SMC-D 握手时快速分辨对端虚拟设备是否可达。

04

Virtio

本月高性能网络 SIG 在 virtio 领域的工作,主要聚焦在:
(1)测试动态中断调节性能数据。

(2)推动接收流过滤、RSS Context 的标准方案。

动态中断调节

动态中断调节 NetDIM 算法通过统计设备队列的流量信息,自适应调整网卡中断频率,以达到吞吐提升的目的。

高性能网络小组推动完成了 NetDIM 的 virtio 标准和 OS 代码,发现并修复了多个上游内核问题。测试结果显示,在 sockperf benchmark 中可以最大提升 20+% 的吞吐。

高性能网络小组进一步分析了 NetDIM 的时延影响,发现 NetDIM 会对低载小包时延产生不利影响,这是由于 NetDIM 算法设计更加关注吞吐提升,没有针对性关注时延提升而造成的。我们会针对此时延问题尝试作出进一步的优化。

接收流过滤

接收流过滤(Receive Flow Filter)能力提供接收方向的数据流处理,包括数据流导向、数据流过滤等,为用户提供了灵活的流规则配置方法。数据流导向功能基于用户在 virtio 网卡上配置的数据流规则,可以将匹配了某个规则的数据流导到对应的单个或多个目的队列。数据流过滤功能可以将匹配了某个规则的数据报文丢弃。

高性能网络小组与 Nvidia、Marvell 等合作发起了 [PATCH requirements v5 5/7] net-features:Add n-tuple receive flow filter]() 的提案,让 virtio 支持接收流过滤的能力,同时在设计时考虑了网络通用加速方法 Accelerated RFS 的实现要求,可作为后续流规则相关配置方法的基础能力。

RSS Context

当前 virtio 仅支持单个默认 RSS (Receive Side-Scaling) 配置,这无法满足一些场景对队列流量隔离等的需求,导致网络设备流量管理不灵活的问题。针对此问题,高性能网络小组发起了 [PATCH v2] virtio-net: support the RSS context]() 提案,以支持 virtio 实现多个 RSS 配置上下文。该提案支持查询设备能力,修改、删除、新增 RSS context等。

virtio-net + AF_XDP

高性能网络小组一直以来都在主导推进 virtio-net 对于 AF_XDP 的支持。2年多以来,我们已经解决了多个相关的基础依赖问题。

目前这块的工作取得了一些决定性的进展:Virtio Core 支持 dma premapped 的特性目前已经被合并进入了 Linux 6.6。这意味着, virtio-net 支持 AF_XDP 的最后一块依赖被补齐了。我们会尽快整理后续 virtio-net 支持 AF_XDP 的 patch 提交到上游社区,完成这一工作。

注意:基于龙蜥 Alinux3 及 Alinux2 携带的 ANCK 内核都已经包含了 virtio-net 支持 AF_XDP 的特性。欢迎尝试!

相关链接:
高性能网络 SIG 主页:
https://openanolis.cn/sig/high-perf-network
注:更多龙蜥 SIG 月度动态可点击这里查看。

—— 完 ——

加入龙蜥社群

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


关于龙蜥

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

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

往期精彩推荐
1.人人都可以参与开源!龙蜥社区最不容错过的开发者活动来了
2.小龙力荐!人人都可以完成算法代码,简单易上手3.10 大演讲主题、14 位技术大咖!龙蜥大讲堂 9 月直播预告硬核来袭
4.龙蜥社区 8 月度运营大事件回顾
5.桌面网络存储迎来新浪潮!龙蜥社区联合龙芯首发优龙桌面网络存储一体机方案

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存