高效能網路 SIG 月度動態:推動 virtio 支援動態中斷調節及更靈活的分流機制

OpenAnolis小助手發表於2023-09-18

高效能網路 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 的特性。歡迎嘗試!

相關連結可移步龍蜥公眾號(OpenAnolis龍蜥)2023年9月14日相同推送檢視。

注:更多龍蜥 SIG 月度動態可點選 這裡檢視。

—— 完 ——


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2984024/,如需轉載,請註明出處,否則將追究法律責任。

相關文章