我给rk3588工控机打了“实时补丁”,实测强了不是一点点!
“实时性就是生命线”
相信兄弟们都听过类似的话,毫不夸张地说,在工业自动化、能源电力等领域,微秒级的延迟,足以引发连锁反应,影响效率与安全。
我给创龙科技rk3588国产工控机打入了linux-rt实时补丁,系统时延实测数据见下文!
本次使用创龙科技已适配linux-rt内核的rk3588工控机,在“cpu空载”“cpu满负荷”“cpu满负荷 核心隔离”三种情况下,持续测试12小时,结果如下所示:

根据以上三种状态的测试结果可知:当程序指定至隔离核心上运行时,能大幅降低延迟,最大延迟只有6us,推荐对实时性要求较高的程序指定至隔离的cpu核心运行。
标准linux的先天短板
标准linux内核追求“公平调度”和“高吞吐”,内核不可抢占、中断处理不确定,导致响应延迟高、抖动大,难以满足工业场景的硬实时控制要求。
linux-rt的破局之道
linux-rt(real-time)内核通过preempt_rt补丁对内核进行深度重构,从底层解决标准内核的实时性缺陷,让系统响应更快速、更确定。
(1)内核可抢占:允许高优先级任务,抢占低优先级任务。
(2)中断线程化:将大部分硬件中断,转化为可被调度的内核线程,可被更高优先级任务抢占,避免中断阻塞。
(3)精细化锁机制:使用可抢占互斥锁,减少任务阻塞时长,提升调度灵活性。
(4)高精度定时器:提供纳秒级精度的定时与调度能力,满足工业场景对时序控制的极致要求。
我们基于rk3588工控机,采用cyclictest延迟检测工具进行系统实时性测试。本次测试以隔离cpu3核心为例,通过降低系统上所运行的其他进程对隔离cpu3产生的延迟影响,确保cpu3进程的正常运行,进而评估linux-rt内核的系统实时性。
rk3588工控机上电启动后,在u-boot倒计时结束之前长按"ctrl c"进入u-boot命令行模式,执行如下命令,修改环境变量,隔离cpu3核心。

运行stress压力测试工具,使得cpu处于满负荷状态。

再使用taskset工具将cyclictest测试程序运行在所有核心上,测试cpu3核心满负荷状态下的实时性能,测试指令运行12小时,测试完成后将生成统计结果iso_overload_output文件。

根据测试结果文件的数据,得到隔离cpu核心状态下的统计结果如下所示。本次测试中,cpu2核心max latencies值最大,为184us,隔离cpu3核心的max latencies值最小,为6us。

简单来说,linux-rt将标准内核从“不可打断的系统协调者”,转变为“可被实时任务随时调度的快速执行者”,兼顾linux生态的丰富性与工业级的实时性!
在cpu几乎被“榨干”(满负荷)的极端情况下,隔离后的cpu3核心最大延迟只有6us,rk3588工控机打了“实时补丁”后,性能强了不是一点点!

创龙科技arm工控机,有瑞芯微rk3588/rk3576/rk3562等处理器可选,集成了modbus、canopen、opc ua等工业组件,已通过emc测试,并获得ce、fcc、rohs等国际权威认证,真正做到开箱即用,能省去繁杂的硬件调试、驱动适配、组件移植和系统优化等工作。

客服






