高性能网络SIG月度动态:virtio 动态中断调节优化、多项内核网络缺陷修复

简介: 一键查看高性能网络SIG月度动态。

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

01 整体进展

本月高性能网络 SIG 的主要工作聚焦在内核缺陷修复、SMC 和 virtio 上。

本月关键进展:

1. SIG 正在推进 virtio 动态中断调节的优化,包括动态配置参数列表和 ctrlq 异步化。

2. SIG 持续推进 loopback-ism 的标准化,更新并修复了多项内容。

02 ANCK 内核网络

修复

ANCK 5.10 本月修复若干异常问题,随 ANCK 5.10.134-16.3 版本发布,主要问题包括:

  • 修复 inet_recv_error() 中可能产生警告信息的问题。
  • 修复 nft_byteorder_eval() 中可能出现的数据溢出问题。
  • 修复 inet6_rtm_getaddr() 中潜在的内存泄漏问题。
  • 修复 tcp 中特定场景下可能未初始化 accept 队列产生的警告问题。
  • 修复 skb_segment() 中 mss 计算错误的问题。
  • 修复在 TCP 零拷贝接收场景下潜在的 panic 问题。
  • 修复在弱内存模型 CPU 下,tcp_push 对 sk 变量执行的读取和更新被重排后,导致的数据异常延迟问题。
  • 修复 ip_setup_cork() 中潜在的内存泄漏问题。

安全

ANCK 5.10 和 ANCK 4.19 分别修复了 2 个 CVE,已随 ANCK 5.10.134-16.3 和 ANCK 4.19.91-27 版本发布:

  • CVE-2022-3643,CVE-2024-0607

03 SMC

本月高性能网络 SIG 在 SMC 领域的工作主要聚焦于上游 loopback-ism 的版本迭代。

loopback-ism

本月 loopback-ism 在上游推进迭代了 4 个版本,目前更新到 V5[1],更新内容包括:

  • 移除旧版本中 sysfs knobs,默认使用物理连续内存,默认将 sndbuf 与 DMB 合并。
  • loopback-ism 接收处理使用 tasklet 触发。
  • 修复 lockdep warning,优化注释、函数名及 commit log。

[1]https://lore.kernel.org/netdev/20240324135522.108564-1-guwen@linux.alibaba.com/

04 virtio

本月高性能网络 SIG 在 virtio 领域的工作,主要聚焦于 virtio-net 动态中断调节的优化。

配置 DIM 参数列表

动态中断调节(DIM, Dynamic Interrupt Moderation)是一种在 Linux 内核中实现的技术,以 NetDIM 库的形式提供,旨在优化和调整中断频率,以提升网络设备的性能和效率,其被广泛应用于各现代网卡中。

然而,不同的网卡具有多样化的候选中断参数列表需求,尤其是 virtio 网卡的后端可能由不同软件设备或硬件设备实现,所以 DIM 在 virtio-net 上的性能并未符合预期,这在一定程度上正是不当的中断配置列表造成的。同时,其他的现代网卡例如 ICE、IDPF 等也对其 DIM 参数列表进行了自定义配置。

基于此,高性能网络小组正在推动基于用户态工具 ethtool 配置中断列表的方法[2],以允许用户针对各自设备的特定需求,灵活地调节 DIM,从而实现最佳的网络吞吐和时延。

[2]https://lore.kernel.org/all/1712059988-7705-1-git-send-email-hengqi@linux.alibaba.com/

控制队列异步化

Virtio 控制队列(ctrlq)以同步的方式发送驱动程序配置设备的请求。当驱动程序或用户发送配置请求给设备时,如果设备没有及时处理这些请求,ctrlq 就会持续等待设备的响应。这种等待机制严重限制了动态中断调节(DIM)在需要频繁下发配置请求时的性能表现。

为了解决这一问题,高性能网络小组正在积极推进 ctrlq 异步化配置设备的方法[3]。通过这种方式,DIM 能够保持高效运作,充分发挥其动态中断调节带来的性能优势。

[3]https://lore.kernel.org/all/1712059988-7705-1-git-send-email-hengqi@linux.alibaba.com/


相关链接:

高性能网络 SIG 主页:

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

注:更多龙蜥 SIG 月度动态可点击这里查看。

—— 完 ——

相关文章
|
9月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
302 2
|
9月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
259 1
|
9月前
基于Reactor模式的高性能网络库github地址
https://github.com/zyi30/reactor-net.git
216 0
|
7月前
|
监控 前端开发 安全
Netty 高性能网络编程框架技术详解与实践指南
本文档全面介绍 Netty 高性能网络编程框架的核心概念、架构设计和实践应用。作为 Java 领域最优秀的 NIO 框架之一,Netty 提供了异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。本文将深入探讨其 Reactor 模型、ChannelPipeline、编解码器、内存管理等核心机制,帮助开发者构建高性能的网络应用系统。
523 0
|
9月前
|
缓存 索引
基于Reactor模式的高性能网络库之缓冲区Buffer组件
Buffer 类用于处理 Socket I/O 缓存,负责数据读取、写入及内存管理。通过预分配空间和索引优化,减少内存拷贝与系统调用,提高网络通信效率,适用于 Reactor 模型中的异步非阻塞 IO 处理。
309 3
|
SQL 监控 安全
网络安全与信息安全:漏洞、加密与安全意识
随着互联网的迅猛发展,网络安全和信息安全问题日益受到关注。本文深入探讨了网络安全漏洞、加密技术以及提高个人和组织的安全意识的重要性。通过分析常见的网络攻击手段如缓冲区溢出、SQL注入等,揭示了计算机系统中存在的缺陷及其潜在威胁。同时,详细介绍了对称加密和非对称加密算法的原理及应用场景,强调了数字签名和数字证书在验证信息完整性中的关键作用。此外,还讨论了培养良好上网习惯、定期备份数据等提升安全意识的方法,旨在帮助读者更好地理解和应对复杂的网络安全挑战。
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
415 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
327 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
325 10