我有一个我无法理解的奇怪行为:出于性能测量目的,我正在使用“旧”并行端口接口在 debian 内核 3.2.0-4-amd64 上生成 IRQ(我正在使用连接的外部信号发生器到 ACK 引脚)。
我编写了自己的内核模块(仅上半部分)来处理中断并将外部信号发送回并行端口并在示波器上显示这两个信号,以便我可以测量内核响应时间。一切都按预期工作,我可以看到平均 70 µs 的时间响应和一些 20 µs 的“突发”。我在“Intel(R) Core(TM) i3-3240 CPU @ 3.40GHz”上运行。
现在,“无法解释”的部分。如果我使用“压力”程序加载 CPU、内存和 I/O,我预计平均时间会最差,但相反的情况发生了:我的平均响应时间下降到 20µs。我尝试了 3 个不同的内核:vanilla、PREEMT-RT anf vanilla,其中 NO_HZ 选项设置为 false。有人能解释一下这其中的魔力吗?
我将“州长”配置更改为“性能”,但没有改变任何东西。