Linux 中的中断延迟

Interrupt latency in Linux

我想了解 linux 中的中断延迟是否取决于内核节拍(计时器)。

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

我已按照说明进行操作 http://www.tldp.org/LDP/tlk/dd/interrupts.html 该机制与 "real-time clock" tick.

相关

因此,中断延迟取决于定时器节拍 (CONFIG_HZ) 是否正确,即更高的节拍值将导致更小的中断延迟?

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

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

其中最后一项可能变化很大,因此中断延迟的度量通常包括最小值、典型值和最大值。

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

  • 越新的中断处理程序 运行,处理程序所需的代码和数据就越有可能仍在 CPU 的缓存中。
  • 延迟其他中断处理程序的频繁执行的中断处理程序会影响其他处理程序所见的典型延迟

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

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

然而,正如我所读,问题所指的 LDD 章节只是使用 "real-time clock" 滴答作为中断源的示例。所以一般来说 CONFIG_HZ 值不会影响中断延迟,尽管如果你要测量它可能会有一些(可能很小)影响。