Linux 中的中断延迟

问题描述 投票:0回答:1

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

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

我已按照以下说明进行操作 http://www.tldp.org/LDP/tlk/dd/interrupts.html 这将机制与“实时时钟”滴答声联系起来。

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

linux performance time kernel
1个回答
6
投票

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

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

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

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

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

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

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

然而,当我读到它时,问题所指的LDD章节只是简单地使用“实时时钟”滴答作为中断源的示例。因此,一般来说,CONFIG_HZ 值不会影响中断延迟,尽管如果您要测量它,可能会产生一些(可能很小)影响。

© www.soinside.com 2019 - 2024. All rights reserved.