微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux内核在压力下具有更好的响应时间

我有一种我无法理解的stange行为:
出于性能测量的目的,我使用’旧’并行端口接口在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.
有人可以解释这个的魔力吗?

我将“调控器”配置更改为“性能”,但不会更改任何内容.

解决方法

您的中断处理程序的优先级高于压力程序. 因此,压力程序的唯一影响是防止cpu休眠,这避免了cpu在中断到来时从休眠状态唤醒所需的延迟.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐