2016-05-01 61 views
0

我想了解linux中的中断延迟是否依赖于内核tick(定时器)。Linux中的中断延迟

中断等待时间是指从产生中断到处理中断源(代码)的时间。

我按照 的说明http://www.tldp.org/LDP/tlk/dd/interrupts.html 这与“实时时钟”滴答的机制有关。

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

回答

3

中断延迟时间是衡量从设备处理单个中断所花费的时间。它是由多个部件组成,主要有:

  • 硬件延迟 - 采取中断信号的时间来通过中断控制器和关闭CPU的流水线
  • 中断处理开销从中断源传播 - 保存当前执行状态,确定中断源并调用相应的处理程序由操作系统屏蔽或禁用中断或运行更高优先级中断引起的其他延迟(或者阻止中断处理程序运行或在运行时中断它)

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

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

  • 的最近中断处理程序跑,就越有可能的是,处理程序所需的代码和数据仍将位于CPU的高速缓存中。
  • 这延迟其他的中断处理程序
  • 甲频繁执行的中断处理程序将影响由那些其他处理程序

中引用的可能是相关的LDD章节中使用的实时时钟的具体例子看到的典型等待时间:

  • 在老版本的Linux内核版本,有残疾中断的周期性中断运行的投手,防止自身的处理程序被中断,而其他大多数的中断处理程序与中断运行启用
  • 在系统中其阿西GN中断的基于优先级,其输入到中断控制器它连接到,事实上,实时时钟中断被硬连接可能影响其优先

然而,如我读它时,LDD章问题指的是简单地使用“实时时钟”滴答作为中断源的例子。所以一般来说CONFIG_HZ的值不会影响中断延迟,但如果你要测量它,可能会有一些(可能很小)的影响。