【发布时间】:2020-06-04 21:46:55
【问题描述】:
我正在尝试完全消除安静机器上一组内核上的定时器中断。这些是这些内核定期处理的唯一中断。我已经isolcpu'd 他们,并用CONFIG_NO_HZ_FULL 构建了一个内核,实际上现在他们只接收大约每秒一次的定时器中断。 是否可以消除这个残留的 1Hz 定时器中断?
这个kernel doc 表明在某些时候需要偶尔打勾:
一些流程处理操作仍然需要偶尔 调度时钟滴答。这些操作包括计算 CPU 负载,维护计划平均值,计算 CFS 实体 vruntime, 计算 avenrun,进行负载均衡。他们是 当前由调度时钟每秒刻度容纳 或者。正在进行的工作将消除对这些的需求 不频繁的调度时钟滴答声。
而这个kernel patch,“删除 1 Hz 滴答代码”表明它已在更高版本的内核中被删除:
现在 1Hz 滴答已卸载到工作队列,我们可以安全地删除 用于在本地处理它的残留代码。
我已经构建了 5.3.0 内核,希望这个残留的滴答声会被移除,但它仍然存在。
我需要设置其他启动参数吗?最新版本的内核中是否真的删除了剩余的计时器滴答声? (this question有一些相关信息)
【问题讨论】:
-
如果您要问如何配置内核版本,那不是编程问题。我认为这可能是Unix & Linux 的话题。
-
我认为 1 Hz 滴答代码被卸载到全局工作队列,而不是完全删除。 sched/isolation: Offload residual 1Hz scheduler tick 的提交描述提供了更多信息。
-
@TobySpeight 我链接的问题非常相似,尚未关闭/有 6 个赞成票,还有很多其他关于配置 Linux 的 SO 问题。我还认为 SO 是接触具有内核开发经验的人的合理场所,他们可能在这里有一些见解。
-
@sevko 下面的答案对你有用吗?
标签: linux timer linux-kernel real-time interrupt