Linux中的中断延迟

ran*_*nsh 0 linux performance time kernel

我试图了解Linux中的中断延迟是否取决于内核滴答(计时器)。

中断等待时间是从生成中断到处理中断源(代码)所经过的时间。

我已经按照http://www.tldp.org/LDP/tlk/dd/interrupts.html中的说明进行了操作,该说明 将机制与“实时时钟”刻度相关。

因此,说中断等待时间取决于定时器滴答(CONFIG_HZ)是否正确,即较高的滴答值将导致较小的中断等待时间?

Stu*_*efy 5

中断等待时间是对处理设备中单个中断所花费时间的度量。它由多个组件组成,主要是:

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

其中的最后一个尤其​​可能变化很大,因此中断等待时间的度量通常包括最小值,典型值和最大值。

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

  • 中断处理程序运行的越近,该处理程序所需的代码和数据仍将仍位于CPU的高速缓存中的可能性就越大。
  • 频繁执行的中断处理程序会延迟其他中断处理程序,这将影响其他处理程序看到的典型延迟

引用的LDD章节中使用的实时时钟的特定示例可能是相关的:

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

但是,当我阅读该书时,问题所涉及的LDD章节只是使用“实时时钟”滴答作为中断源的示例。因此,通常,CONFIG_HZ值不会影响中断等待时间,尽管如果要进行测量,可能会产生一些(可能很小)的影响。