共计 3057 个字符,预计需要花费 8 分钟才能阅读完成。
高性能网络 SIG(Special Interest Group):在云计算时代,软硬件高速倒退,云原生、微服务等新的利用状态衰亡,让更多的数据在过程之间流动,而网络则成为了这些数据流的载体,在整个云时代扮演者前所未有的重要角色。在这个万物互联的时代,云上的网络通信效率对各种服务至关重要,高性能网络趣味组致力于利用 XDP、RDMA、VIRTIO 等新高效通信技术,联合软硬件一体化的思维,打造高性能网络协议栈,晋升云计算时代数据中心利用的网络的性能.
01 本月 SIG 整体停顿
1 月高性能网络 SIG 的工作在上游社区失去了积极响应,SMC、virtio 和业界相干参与方建设了继续的沟通机制。
要害停顿:
- 春节前龙蜥社区高性能网络 SIG 成员和 IBM SMC 团队相干开发人员进行了一次视频会议,探讨对于 SMC 协定扩大以及龙蜥社区高性能网络 SIG 小组在 SMC 上近期的一些工作,并建设起定期沟通机制。
- 继 2022 年 12 月咱们将 SMC loopback 和 virtio-ism 设施提交到 Linux 社区后,本月陆续失去了上游社区的反馈。针对 SMC 设施拓展,上游 Linux 社区合入了 SMC-D 和 ISM 设施的解耦批改,为后续 SMC loopback 和 virtio-ism 的反对铺平了路线。
- SMC fallback 减速性能已开发实现,SIG 外部 review 中。fallback 减速将确保 SMC 在 fallback 回 TCP 后性能不会呈现损失,补救以后 SMC fallback 到 TCP 时短连贯性能有余的问题。
- SIG 开发的针对 virtio-net 的 xdp multi-buffer 的反对已被上游 Linux 社区接管。默认状况下,xdp 和 jumbo frame 是抵触的,本个性容许咱们在应用 jumbo frame 场景下也应用 xdp。
- SIG 提交的 virtio-net 反对 XDP socket zerocopy 性能本月已实现开发并提交到上游 Linux 社区探讨。virtio-net 之前不反对 XDP socket 的零拷贝性能,本个性使 virtio-net 实现了 XDP socket 零拷贝的反对,大幅晋升 XDP Socket 的收发包性能。
02 Anolis OS
问题修复
本月 ANCK 网络方向共计修复 17 个 CVE(蕴含一个高危 CVE-2023-0179),笼罩 netfilter/tcp/udp/bluetooth/net.packet/proc/xen/slip 等模块,CVE 列表:CVE-2022-4378,CVE-2022-20368,CVE-2022-42895,CVE-2022-42896,CVE-2022-3564,CVE-2022-3566,CVE-2022-2588,CVE-2022-36879,CVE-2022-1966,CVE-2022-3535,CVE-2022-3524,CVE-2022-42722,CVE-2022-33741,CVE-2022-1966,CVE-2022-1204,CVE-2022-41858,CVE-2023-0179。
03 SMC
内部会议
本月与 IBM SMC 团队进行了一次视频会议,针对 SMC 协定扩大以及龙蜥社区高性能网络 SIG 小组在 SMC 上近期的一些工作进行了探讨,并建设起定期沟通机制,增强了单方的理解与单干。
SMC-D 扩大
- 上游 Linux 社区已合入 SMC-D 和 ISM 设施解耦批改,旨在提供一个更通用的扩大 SMC-D 能力(https://lwn.net/Articles/921057/),为咱们推送上游 Linux 社区的 SMC loopback 和 SMC + virtio-ism 计划筹备。
- SMC loopback 计划推送上游 Linux 社区后,陆续失去了上游社区的反馈,其中一些技术细节仍在探讨中(https://lkml.org/lkml/2022/12…)。SMC loopback 和 SMC + virtio-ism 计划实质上都依赖 SMC-D 针对更多设施的扩大能力,这其中一些独特的工作咱们将会一起在上游 Linux 社区推动(https://lists.oasis-open.org/…)。
SMC fallback 减速
减速 SMC fallback 的计划曾经开发实现,该计划旨在提供一种疾速、轻量回退 TCP 的能力,拓宽 SMC 的应用场景。预计下个月推送上游 Linux 社区。
04 virtio
virtio-net tunnel
背景:网络包应用 tunnel 相干技术的时候, 个别会有一个 outer header 和一个 inner header。而基于曾经有 virtio-net spec 定义, 在做队列抉择的时候, 会基于 outer header 进行 hash 计算。而个别状况下, tunnel 的数据包的 outer header 是固定的或类似的, 这样只会有大量的网卡队列会被抉择, 无奈施展多队列网卡的劣势。
Heng Qi hengqi@linux.alibaba.com 发动了 virtio_net: support inner header hash 的提案, 目前针对热迁徙还有一些收尾的点须要探讨(https://lists.oasis-open.org/…)。
virtio-net split header
背景:将数据包的 header 和 payload 进行拆散,在例如零拷贝等方向具备非常重要的意义,例如 Eric 提出的零拷贝办法(https://lwn.net/Articles/754681/)和 Jonathan Lemon 提出的零拷贝办法等(链接见下)。
https://lore.kernel.org/io-ur…
Xuan Zhuo 发动了 virtio_net: support for split transport header 的提案,并和 Heng Qi 独特社区推动,目前 Nvidia 的 Parav Pandit 也提出了一些新的想法参加到这个性能的探讨中,正在探讨(https://lists.oasis-open.org/…)。
virtio-net multi-buffer xdp
本月 SIG 成员 Heng Qi 提交的 virtio-net 对于 xdp multi-buffer 的补丁被合入到 linux 主线(https://lore.kernel.org/all/2…)。XDP multi-buffer 容许一个 XDP ebpf 程序拜访多个收方向的 buffer,而像 Jumbo frame 一类的个性,9K 的 MTU 导致一个包的大小可能会超过 1 个 PAGE,而没有 XDP multi-buffer 之前,XDP 程序只能拜访一块间断的内存。因而,jumbo frame 和 XDP 存在抵触,通过 multi-buffer XDP 的反对,能够解决 jumbo frame 和 XDP 不能共存的问题。
virtio-net XDP Socket(AF_XDP) zerocopy
在实现了 per-queue reset 的 spec 及 kernel 工作的后期下, 最新版本的 virtio-net 反对 XDP socket zerocopy 的 patch set 终于提交给社区, 等社区进一步的探讨。这个个性之前在龙蜥的内核上通过其余形式实现了反对,并且基于 ExpressUDP 和 XQUIC 在阿里巴巴的入口网关大规模上线,当初咱们把这个个性奉献给上游社区。对于 ExpressUDP 和 XQUIC 实际,参考 ExpressUDP(https://openanolis.cn/sig/hig…)。
高性能网络 SIG 主页链接地址:https://openanolis.cn/sig/hig…
—— 完 ——