Linux中的中断延迟

时间:2016-05-01 07:20:32

标签: linux performance time kernel

我试图了解linux中的中断延迟是否依赖于内核tick(计时器)。

中断延迟是从产生中断到处理中断的源(代码)所经过的时间。

我已经按照说明进行了操作 http://www.tldp.org/LDP/tlk/dd/interrupts.html 这将机制与“实时时钟”勾选相关联。

因此,中断延迟取决于计时器滴答(CONFIG_HZ)是否正确,即更高的滴答值会导致更小的中断延迟?

1 个答案:

答案 0 :(得分:5)

中断延迟是衡量处理设备单个中断所需时间的指标。它由多个组件组成,主要是:

  • 硬件延迟 - 中断信号从中断源通过中断控制器传播到CPU的管道所需的时间
  • 中断处理开销 - 保存当前正在执行的状态,确定中断源并调用适当的处理程序
  • 由操作系统屏蔽或禁用中断或更高优先级中断运行导致的额外延迟(阻止中断处理程序在运行时运行或中断)

其中最后一个特别是可变,因此中断延迟的测量通常包括最小值,典型值和最大值。

上面给出的中断延迟的主要组成部分不受中断处理程序运行频率的影响,但可能会产生一些影响:

  • 最近运行的中断处理程序越多,处理程序所需的代码和数据仍然存在于CPU的缓存中。
  • 频繁执行的中断处理程序会延迟其他中断处理程序,这会影响其他处理程序所看到的典型延迟

所引用的LDD章节中使用的实时时钟的具体示例可能是相关的:

  • 在较旧的Linux内核版本中,定期中断的处理程序在禁用中断的情况下运行,防止处理程序本身被中断,而大多数其他中断处理程序在启用中断的情况下运行
  • 在根据连接到中断控制器的输入分配中断优先级的系统上,实时时钟中断是硬连线的事实可能影响其优先级

然而,正如我所读到的那样,问题所指的LDD章节只是简单地使用"实时时钟"勾选作为中断源的示例。因此,一般来说,CONFIG_HZ值不会影响中断延迟,但是如果要测量它,可能会有一些(可能很小的)效果。