Linux 6.3 将进一步改进可重启序列(RSEQ),以提升运算性能
12 月 28 日消息,Linux Kernel 在数年前就已经合并了可重启序列(The Restartable Sequences,简称 RSEQ),GNU C Library 已经使用 RSEQ 对每个 CPU 数据进行更快的用户空间操作。在明年推出的 Linux 6.3 中将会进一步改进 RSEQ。
通过递增每个 CPU 计数器、修改每个 CPU 自旋锁、读取 / 写入每个 CPU 环形缓冲区等情况下避免原子操作(atomic operation,是指不会被线程调度机制打断的操作),RSEQ 可以明显优化性能,从而提供出色的基准测试结果。
主导 RSEQ 大部分工作的 Mathieu Desnoyers 最近一直致力于扩展 Restartable Sequences ABI ,并公开了 NUMA node ID、mm_cid 和 mm_numa_cid 字段。
Desnoyers 在补丁介绍中表示:
NUMA node ID 允许在 libc 中实现更快的 getcpu (2)。
per-memory-map concurrency id (mm_cid) 允许用户空间 per-cpu 数据结构进行理想缩放(向下或向上)。
内存映射中分配的并发 ID 可以通过调度程序跟踪。而这个调度程序根据并发运行的线程数、CPU 亲和性(affinity)、应用于这些线程的 cpuset 和逻辑核心数等等参数进行判断。
NUMA-aware concurrency id (mm_numa_cid) 与 mm_cid 类似,不同之处在于它跟踪与每个 cid 相关联的 NUMA node ID。
在 NUMA 系统上,当用户空间观察到 NUMA 感知并发 ID 与 NUMA 节点相关联时,它保证永远不会更改 NUMA 节点,除非发生内核级 NUMA 配置更改。这对于在属于 cpuset 的进程或一组进程被固定到属于系统 NUMA 节点子集的一组内核的环境中运行的 NUMA 感知 per-cpu 数据结构很有用。
相关文章
- SpringBoot3.0都正式发布了,尝鲜之前先搞明白AQS底层再说
- 为什么要推荐大家使用Spring Cloud Alibaba
- 从源码层面理解 React 是如何做 Diff 的
- 线程池监控:执行超时、等待超时;执行超时数量、等待超时数量
- 软件测试|Pycharm基础使用介绍
- Nacos2.2.0版本新特性分析
- axios笔记(一) 简单入门
- 知道策略模式!但不会在项目里使用?
- 你写的代码是如何跑起来的?
- Tipard Screen Capture for Mac(屏幕截图和录制软件) 1.1.18激活版
- 如何成为顶尖架构师?
- 2022 最新版 JDK 17 下载与安装 步骤演示 (图示版)
- 架构师的最佳成长路线
- params编程式导航踩坑
- 刷新页面后this.$route.params 为空
- 签完三方后无法去实习,有什么可以弥补的吗?
- LeanCloud国际版遇到的问题及解决方案
- 软件测试|Pycharm常用插件介绍
- React 的调度系统 Scheduler
- Chung-Ang University(韩国中央大学)研究人员开发出重尾噪声奖励下的最佳决策算法