首页 > 其他分享 >高性能网络SIG月度动态:virtio新设备进入virtio规范、smc新特性IPC性能比tcp提升88% | 龙蜥SIG

高性能网络SIG月度动态:virtio新设备进入virtio规范、smc新特性IPC性能比tcp提升88% | 龙蜥SIG

时间:2023-07-28 19:03:16浏览次数:46  
标签:IPC virtio 高性能 SIG 2022 CVE SMC

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

01

本月 SIG 整体进展

12 月高性能网络 SIG 的主要工作聚焦在 Anolis OS 通用内核网络、SMC 和 virtio 上。以下为关键进展:

  • 龙蜥社区高性能网络 SIG 提出的 virtio 设备:virtio-ism 的 spec 提交到 virtio 社区,相应的设备 ID 经过 virtio TC 的投票已经进入 virtio 规范。
  • 龙蜥社区高性能网络 SIG 提出的 SMC loopback 设备的支持的 RFC 提交到 linux 社区讨论。
  • ANCK-5.10 即将发布 013 版本,SMC 做了大量的优化和修复。

02

Anolis OS



问题修复

12 月 ANCK 网络方向共计修复 33 个 CVE(包含一个高危 CVE-2022-4378),覆盖 tcp/netfilter/ip/tc/vsock/wifi/bluetooth/can 等模块,CVE 列表:CVE-2022-42895、CVE-2022-3435、CVE-2022-3633、CVE-2022-3535、CVE-2022-0812、CVE-2022-39190、CVE-2022-42719、CVE-2022-1015、CVE-2022-42895、CVE-2021-4203、CVE-2022-1204、CVE-2022-1012、CVE-2021-33135、CVE-2022-1012、CVE-2022-1966、CVE-2022-1966、CVE-2022-1679、CVE-2022-3028、CVE-2022-3028、CVE-2022-2663、CVE-2022-3567、CVE-2022-3586、CVE-2022-41674、CVE-2022-42722、CVE-2022-42721、CVE-2022-42720、CVE-2022-3566、CVE-2022-3521, CVE-2022-3524、CVE-2022-3435、CVE-2022-3564、CVE-2022-3625、 CVE-2022-4378。



功能增强

  • PR908 5.10 内核 ipvs 支持通过 run_estimation sysctl 关闭 estimation。

03

SMC



版本发布

12 月 SMC 最新稳定版将随着 ANCK 5.10-013 发布。本次发布的版本将包括如下更新:

  • 支持使用 SMC-R v2 + eRDMA RoCE v2。与现有 SMC-R v1 + eRDMA iWARP 相比没有性能区别。运行 SMC-R v2 前需要加载兼容模式 eRDMA 驱动,并使用 smc-tools 在通信两侧设置相同的 ueid。
  • 增加 CQ event_handler 采集 CQ 信息。
  • 增加 DIM proc file 显示 DIM 状态。
  • 去除 sndbuf 清空操作。
  • 引入 lockfree CQ。
  • 允许 SMC-R 连接同时进行建连过程,而不是互斥等待。
  • 修复 SMC-R 中内存被错误覆盖导致应用程序数据被破坏问题。
  • 修复 SMC-R 中创建额外的 Link 导致的 panic 问题。


SMC loopback

SMC loopback 特性由高性能网络 SIG 成员 Wen Gu 提交 RFC 至上游社区(patch 链接)。SMC loopback 特性提供了一种更高性能的本机 loopback 通信方式,特别是对于容器通信的场景,从而借助 SMC 自动选择最优加速方式,例如跨主机 RDMA 和本机 loopback。从 Wen Gu 给出的数据来看,吞吐对比 TCP loopback 提升 88%,时延降低 49%,在 ipc-benchmark 场景下,对比 UNIX domain 也有 30% 的性能优势。



04

virtio



virtio ism

virtio-ism 是由龙蜥社区高性能网络 SIG 提出的一种在相邻的 vm 之间进行内存共享的 virtio 设备。配合 smc 可以实现 vm 之间的高性能通信。同时也可以用于容器与容器或容器与虚拟机之间的高速共享内存通信。

目前 virtio ism id (44)已经被 virtio 社区接受。

链接地址:https://github.com/oasis-tcs/virtio-spec/issues/150

后续关于设备定义的 spec 以及相应实现的 RFC 已经提交到 virtio 邮件列表讨论:

https://lists.oasis-open.org/archives/virtio-comment/202212/msg00030.html



virtio-net tunnel

网络包使用 tunnel 相关技术的时候, 一般都会有一个 outer header 和一个 inner header。而基于已经有 virtio-net spec 定义, 在做队列选择的时候, 会基于 outer header 进行 hash 计算。而一般情况下, tunnel 的数据包的 outer header 是固定的或相似的, 这样只会有少量的网卡队列会被选择, 无法发挥多队列网卡的优势。

Heng Qi [email protected] 发起了 virtio_net:support inner header hash 的提案。



链接地址:

https://lists.oasis-open.org/archives/virtio-comment/202212/msg00020.html

经过多轮讨论, 这个提案的 v4 版本目前已经基本完成了 review,预计在 2023.1 月在 virtio TC 进行投票。



virtio-net xdp multi-buffer

Heng Qi [email protected]本月提交了 virtio-net 对于 xdp multi-buffer 的支持的 patch set 到 linux 社区。目前这个 patch set 的 9 个 patch 大部分也已经被 ack 了,还有少量问题还在和 Linux 社区讨论中。



高性能网络 SIG 主页链接地址:

https://openanolis.cn/sig/high-perf-network



—— 完 ——

标签:IPC,virtio,高性能,SIG,2022,CVE,SMC
From: https://blog.51cto.com/u_15308345/6886229

相关文章

  • 高性能存储SIG月度动态:DSMS开始适配Anolis OS、将在ANCK 5.10中支持ublk | 龙蜥 SIG
    高性能存储技术SIG目标:高性能存储技术兴趣组致力于存储栈性能挖掘,当前主要聚焦内核io_uring技术优化异步IO性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。期望通过社区平台,打造标准的高性能存储技术软件栈,推动软硬件协同发展。 01本月SIG......
  • Arm Neoverse N2 reference design Technical Overview
    RDN2Intro本文档是ARM提供给SoC设计人员的一份概述设计文档,较为详细的描述了SoC的方方面面,具有很好的参考意义。SoC的系统架构,硬件互联SoC各block的功能描述、细节描述软件栈概述RDN2的其他参考文档DocumentNameDocumentIDLicenseeonlyAMBA4AXI-StreamPr......
  • 在前端页面中一直出现"Signature has expired."的报错该如何解决
    在排查完后端的问题后,发现还是出现这样的情况很有可能是前端代码传入身份验证的jwt_token时出现了问题jwt和token串之间需要添加一个空格 ......
  • SigniFi - 创新的AI与区块链相结合的算命DApp
    SigniFi是一个非常有创意和实用的web3DApp,它将人工智能、区块链技术与传统的占卜文化完美结合,为用户提供了一个独特的AI占卜/算命服务。SigniFi的产品功能SigniFi的核心产品功能是基于AI算法的智能占卜服务。用户只需要提供自己的个人信息和提出想询问的问题,SigniFi就可以根......
  • 用 Rust 生成 Ant-Design Table Columns
    经常开发表格,是不是已经被手写Ant-DesignTable的Columns整烦了?尤其是ToB项目,表格经常动不动就几十列。每次照着后端给的接口文档一个个配置,太头疼了,主要是有时还会粘错就尴尬了。那有没有办法能自动生成columns配置呢?当然可以。目前后端的接口文档一般是使用Swagger来生成的,S......
  • ipcs
    ipcs分析消息队列共享内存和信号量补充说明ipcs命令用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。语法ipcs(选项)选项资源选项-a,--all显示全部(默认值)-q,--queues消息队列-m,--shmems共享内存-s,......
  • InDesign (ID) 2018排版设计软件下载和安装教程
    InDesign软件是一个定位于专业排版领域的设计软件,是面向公司专业出版方案的新平台,由Adobe公司于1999年9月1日发布。它是基于一个新的开放的面向对象体系,可实现高度的扩展性,还建立了一个由第三方开发者和系统集成者可以提供自定义杂志、广告设计、目录、零售商设计工作室和报纸出版......
  • 华为交换机连接esight日志
    主要是配置ip到交换机终端 改vlan,接入口为汇聚核心到本交换机,vlan101,电脑口为vlan101。主要是接线。改网关,为172.16.0.1,?改静态路由0.0.0.00.0.0.0172.16.0.1配置vlanif,    [caiwu-s5735]displaycurrent-configuration!SoftwareVersionV200R021C0......
  • PowerDesigner 导出数据字典
    1、首先说明我使用的环境。 2、打开PDM模型,右键-->NEW-->REPORT。 3、数据字典编辑器(一些通用模型吧,自己可以再DIY)。 4、选择Table-->ListofTableColumns。5、在选定的条目上右键,选择Selection把你数据字典需要的数据勾上。 6、选择Layout,设置显示格式。 7、显示设......
  • signal的samplecode
    一个signal的samplecode,需要注意的地方是:资源的释放和析构锁的控制资源的清理事务的控制 /*Thisissignalhandlercommoncode*/#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<iostream>#include<vector>#include<atomic>......