如何配置xenomaiPREEMPT-RT以提升其实时性能?

摘要:版权声明:本文为本文为博主原创文章,转载请注明出处 https:www.cnblogs.comwsg1100。如有错误,欢迎指正。 @目录一、前言1. 什么是实时2. 实时分类硬实时(Hard real time system)强实时
版权声明:本文为本文为博主原创文章,转载请注明出处 https://www.cnblogs.com/wsg1100。如有错误,欢迎指正。 @ 目录一、前言1. 什么是实时2. 实时分类硬实时(Hard real time system)强实时(Firm real time system)软实时(Soft real time system)3.常见的RTOS4. latency和jitter二、实时性的影响因素1.硬件CPU架构CacheX86平台优化ARM64平台优化TLB分支预测Hyper-Threading电源管理与调频Multi-CoreDMAother2.BIOS(X86平台)SMI(System Management Interrupts)3.软件4. GPU三、优化措施1. BIOS[x86]BIOS配置Xeon ProcessorsAtom & Core ProcessorsOS SMI配置禁用所有 SMI 源有选择地禁用 SMI 源2. 硬件3. Linux3.1 Kernel CMDLINEcpu隔离Full Dynamic TickOffload RCU callback中断禁用irqbanlanceintel 核显配置[x86]禁用调频hugepagesnmi_watchdog[x86]nosoftlockupCPU特性[x86]3.2 内核构建配置三、软件方面四、优化结果对比1. 原始性能测试。2. 优化BIOS设置。3. Linux配置优化。4. 裁剪桌面。5. Full Dynamic Tick启用前后对比6.桌面、rcu、tick前后比对7.总对比四、实时性能测试X86_64平台ARM64平台(瑞芯微RK3588)相关链接 本文讲述一些有利于提高xenomai实时性的配置建议,部分针对X86架构,但它们的底层原理相通,同样适用于其他CPU架构和系统,希望对你有用。 一、前言 1. 什么是实时 “实时”一词在许多应用领域中使用,人们它有不同的解释,并不总是正确的。人们常说,如果控制系统能够对外部事件做出快速反应,那么它就是实时运行的。根据这种解释,如果系统速度快,则系统被认为是实时的。然而,“快”具有相对含义,并未涵盖表征这些类型系统的主要属性。 我们来看一下,在自然界中,生物在栖息地中的实时行为,这些行为与它们的速度无关。例如,乌龟对来自其栖息地的外部刺激的反应,与猫对其栖息地的外部反应一样有效。虽然乌龟比猫慢很多,但就绝对速度而言,它要处理的事件与它可以协调的动作成正比,这是任何动物在环境中生存的必要条件。 相反,如果生物系统所处的环境,引入了速度超过其处理能力的事件,其行为将不再有效,动物的生存也会受到损害。比如,一只苍蝇可以被苍蝇拍捕捉到,一只老鼠可以被陷阱捕捉到,或者一只猫可以被高速行驶的汽车撞倒。在这些例子中,苍蝇拍、陷阱和汽车代表了动物的异常和异常事件,超出了它们的实时能力范围,可能严重危及它们的生存。 前面的例子表明,实时并没有人们想象的那样快,而是与系统运行的环境严格相关。 实时系统是必须在设置的截止时间内对环境中的事件做出反应的系统,否则会产生严重的后果。 再比如,船舶的制导系统可能看起来是一个非实时系统,因为它的速度很低,而且通常有“足够”的时间(大约几分钟)来做出控制决定。尽管如此,根据我们的定义,它实际上是一个实时系统。 2. 实时分类 根据错过截止时间产生的后果,实时任务可以分为三类: 硬实时(Hard real time system) 如果在截止时间之后产生结果,可能对受控系统造成灾难性后果,则该任务是硬实时任务。 硬任务的例子可以在安全关键系统中找到,并且通常与传感、驱动和控制活动有关,例如: 汽车安全气囊的检测与控制; 反导弹系统要求硬实时。反导弹系统由一系列硬实时任务组成。反导系统必须首先探测所有来袭导弹,正确定位反导炮,然后在导弹来袭之前将其摧毁。所有这些任务本质上都是硬实时的,如果反导弹系统有任何一个任务失败都将无法成功拦截来袭导弹。 强实时(Firm real time system) 如果在截止日期之后产生结果对系统无用,但不会造成任何损害,则该任务是强实时任务。 在网络应用程序和多媒体系统中找到,在这些系统中,跳过一个数据包或一个视频帧比长时间延迟处理更重要。 因此,它们包括以下内容: 视频播放; 音/视频编解码中,没有在设置的码率时序范围内执行完,产生结果都是无用的丢弃即可,继续下一轮读取; 在线图像处理; 软实时(Soft real time system) 如果实时任务在截止日期之后产生结果仍然对系统有用,尽管会导致性能下降,则该任务是软实时任务。
阅读全文