如何提高Linux中1ms定时器的实时性能?

如何提高Linux中1ms定时器的实时性能?,第1张

概述我正在开发一个嵌入式 Linux项目,使用的是可能在版本3.3之后的arago发行版. 我已经配置了一个高分辨率的Linux计时器,每毫秒唤醒一次我的进程.这工作正常,但时间有两个问题: >唤醒时的抖动 >清醒时处理时间的可变性,尽管该过程完成的处理是恒定的. 我将这些问题归结为Linux的实时性能.但我需要 研究提高实时性能的方法. 我已经检查过内核配置了CONFIG_PREEMPT内核选项,这 我正在开发一个嵌入式 Linux项目,使用的是可能在版本3.3之后的arago发行版.

我已经配置了一个高分辨率的linux计时器,每毫秒唤醒一次我的进程.这工作正常,但时间有两个问题:

>唤醒时的抖动
>清醒时处理时间的可变性,尽管该过程完成的处理是恒定的.

我将这些问题归结为linux的实时性能.但我需要
研究提高实时性能的方法.

我已经检查过内核配置了CONfig_PREEMPT内核选项,这对实时有用.

我还将SCHED_FIFO调度类应用于我的进程:

struct sched_param schedparm;memset(&schedparm,sizeof(schedparm));schedparm.sched_priority = 1; // lowest rt prioritysched_setscheduler(0,SCHED_FIFO,&schedparm);

但这没有任何区别.

我想一个合乎逻辑的步骤是将PREEMPT_RT补丁应用于内核构建,但我还没有确定如何做到这一点.

我还能做些什么来改善抖动/持续时间的变化吗?

或者任何人都可以建议一个关于如何应用PREEMPT_RT补丁的可访问教程?

解决方法 似乎PREEMPT_RT是合乎逻辑的下一步.你试过这个教程吗?

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

更新:我建议您看看其他人如何构建抢占式内核,例如:这里:
https://aur.archlinux.org/packages/linux-rt/

您可以阅读PKGBUILD以了解所做的事情.

总结

以上是内存溢出为你收集整理的如何提高Linux中1ms定时器的实时性能?全部内容,希望文章能够帮你解决如何提高Linux中1ms定时器的实时性能?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1019607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存