[英]Difference Linux Kernel 5.10 with / without PREEMPT-RT patch
[英]How do I test and / or benchmark traditional Linux Kernel vs Linux Kernel with RT Preempt patch?
我正在开展一个项目,以对比和观察 Linux 的 Preempt RT 补丁的性能提升。
我应该在两个不同的内核上执行什么样的 C 程序才能更好地理解 Preempt RT 补丁提供的好处。
寻找有关程序的建议。
要具体比较/演示调度特征,可以实现一个系统,其中:
IN
产生中断OUT
上创建(比如说)10ms 脉冲。然后:
IN
IN
和OUT
。IN
的活动(产生中断)边沿触发 scopeIN
上的中断边沿与OUT
上的脉冲开始之间的时间和差异。OUT
脉冲的上升沿触发 scope。大多数现代示波器都具有“持久性”功能,扫描之间不会清除迹线。 这对于测量方差很有用。
如果您缺少 scope 或信号/函数发生器,您可以在 ISR 和用户进程中使用开关和软件时间戳来记录事件时间。 但是您需要在用户任务中确保在捕获时间和使用临界区设置OUT
state 之间不会发生抢占,并且可能需要对开关进行去抖动。 在这种情况下,如果最后一个事件时间戳小于 20 毫秒前,则只是不设置信号量的问题。
如果 PREEMPT-RT 正在执行其工作,则测试应该表现出比默认调度程序更低的延迟、更高的精度和更少的方差,而不管其他(较低优先级)进程正在运行的负载如何。 如果仍然不能满足您的要求,您可能需要一个真正的RTOS。
如果您的应用程序不需要此特性,那么您可能不需要或受益于 PREEMPT-RT,并且流程优先级分配不当或任务设计不当甚至可能导致您的应用程序无法满足要求。 要使 PREEMPT-RT 发挥作用,您必须知道自己在做什么; 它不会神奇地使您的系统“实时”; 相反,它有助于实时系统的实施。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.