皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 7.1 预计将看到显著改进以减少 HRTICK 计时器开销

Linux 7.1 预计将看到显著改进以减少 HRTICK 计时器开销

一系列内核补丁看起来将在今年春天提交给 Linux 7.1 内核周期,以优化调度器 HRTICK 计时器,从而允许其默认启用。

托马斯·格莱克纳和彼得·齐尔斯特拉一直在努力优化 HRTIMER 子系统的某些方面,以减少 HRTICK 计时器的开销,使其能够默认启用。高精度计时器“HRTICK”是调度器代码的一部分,用于利用高精度硬件计时器,而不是低频固定间隔系统计时器。选择 HRTICK 可以带来更好的系统响应性等好处。

Gleixner用最近的一组 48 个补丁解释了这一点:

“Peter 最近发布了一系列调整 hrtimer 子系统以减少调度器 hrtick 计时器开销的帖子,以便默认启用。

结果证明这是不完整的,并导致了对相关细节的更深入调查。

问题是,hrtick 截止时间在每次上下文切换时都会改变,并且也会被唤醒和平衡操作修改。在一个 hackbench 运行中,这会导致每秒大约 2500 个时钟事件重新编程周期,这在虚拟机中尤其有害,因为访问时钟事件设备意味着虚拟机退出。”

这些补丁的最终结果非常令人印象深刻:

“在所有上述修改完成后,启用 hrtick 不会比禁用 hrtick 模式导致回归。

时钟事件设备的重新编程频率从 ~2500/秒降低到 ~100/秒,对于一个具有约 25% 的虚假 hrtimer 中断率的 hackbench 运行。

有趣的是,使用以下命令行参数(’-l$LOOPS -p -s8’)的 hackbench 运行取得了惊人的改进:该参数使用大小为 8 字节的消息的管道。在一个 112 核的 SKL 机器上,这会导致:

NO HRTICK[_DL] HRTICK[_DL]
运行时间:0.840 秒 0.481 秒 ~-42%

其他消息大小高达 256,HRTICK 仍然能带来改进,但幅度不大。尚未调查其原因。”

相当大的改进。值得注意的是,这些补丁现在已排队在 tip/tip.git 的 sched/hrtick 分支中。随着补丁被 TIP 分支采纳,它们很可能在 4 月份的 Linux 7.1 合并窗口期间提交。

转自  Linux 7.1 Expected To See Nice Improvements For Reducing HRTICK Timer Overhead – Phoronix