如何提高Linux中1ms定时器的实时性能?
发布时间:2020-12-13 23:23:39 所属栏目:Linux 来源:网络整理
导读:我正在开发一个嵌入式 Linux项目,使用的是可能在版本3.3之后的arago发行版. 我已经配置了一个高分辨率的Linux计时器,每毫秒唤醒一次我的进程.这工作正常,但时间有两个问题: 唤醒时的抖动 清醒时处理时间的可变性,尽管该过程完成的处理是恒定的. 我将这些问
我正在开发一个嵌入式
Linux项目,使用的是可能在版本3.3之后的arago发行版.
我已经配置了一个高分辨率的Linux计时器,每毫秒唤醒一次我的进程.这工作正常,但时间有两个问题: >唤醒时的抖动 我将这些问题归结为Linux的实时性能.但我需要 我已经检查过内核配置了CONFIG_PREEMPT内核选项,这对实时有用. 我还将SCHED_FIFO调度类应用于我的进程: struct sched_param schedparm; memset(&schedparm,sizeof(schedparm)); schedparm.sched_priority = 1; // lowest rt priority sched_setscheduler(0,SCHED_FIFO,&schedparm); 但这没有任何区别. 我想一个合乎逻辑的步骤是将PREEMPT_RT补丁应用于内核构建,但我还没有确定如何做到这一点. 我还能做些什么来改善抖动/持续时间的变化吗? 或者任何人都可以建议一个关于如何应用PREEMPT_RT补丁的可访问教程? 解决方法
似乎PREEMPT_RT是合乎逻辑的下一步.你试过这个教程吗?
https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO 更新:我建议您看看其他人如何构建抢占式内核,例如:这里: 您可以阅读PKGBUILD以了解所做的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |