是否有任何内核工具可用于以合理的准确度测量中断延迟?

Nue*_*ino 5 interrupt linux-kernel interrupt-handling

我正在尝试测量各种Linux内核的中断延迟中的抖动(启用了RT补丁等).我知道最好的方法是使用示波器来实现这一点,通过GPIO引脚产生中断并在中断服务程序中切换另一个GPIO引脚,但我想知道是否有任何Linux内核工具来做这个,并且可能是我可以比较这些数字.

dav*_*idg 5

一种典型的方法是设置一个高精度时钟(例如CPU的周期计数器),以在将来某个随机但已知的时间触发中断,并在ISR中测量设置时钟的时间之间的差与实际达到ISR的时间有关。

(其中的“随机”部分是为了确保您避免在安静或繁忙的时间有系统地进行测量-例如,您不希望定时器中断与网卡中断同时系统触发,这是不公平的提高您的延迟时间。)

Cyclictest是某种程度上可以实现此目的的工具,尽管它似乎是在测量内核线程中的时间而不是ISR本身,这会在某种程度上增加所测得的延迟时间。