我有一种我无法理解的stange行为:
出于性能测量的目的,我使用’旧’并行端口接口在debian内核3.2.0-4-amd64上生成IRQ(我使用连接到ACK引脚的外部信号发生器).
出于性能测量的目的,我使用’旧’并行端口接口在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.
有人可以解释这个的魔力吗?