延时仅33us,Linux-RT实时性能测试分享—基于瑞芯微RK3562J国产平台

本文主要介绍瑞芯微RK3562J的实时性测试,开发环境如下:

U-Boot:U-Boot-2017.09

Kernel:Linux-RT-5.10.198

LinuxSDK:

LinuxSDK-[版本号]

(基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)

RK3562J实时性测试数据

本文使用Cyclictest延迟检测工具测试Linux系统实时性,分别在CPU空载、满负荷(运行stress压力测试工具)、满负载-隔离CPU3核心(运行stress压力测试工具)三种情况下运行指令测试12小时。

图 1 RK3562J实时性测试数据

根据3种状态的测试结果可知,当程序指定至隔离的CPU3核心上运行时,Linux系统延迟最低,可有效提高系统实时性。故推荐对实时性要求较高的程序(功能)指定至隔离的CPU核心运行。

RK3562J典型应用领域

图 2

Cyclictest系统实时性测试

本文通过创龙科技TL3562-EVM工业评估板(基于RK3562J)的硬件平台进行演示。为了简化描述,本文仅摘录部分方案功能描述与测试结果,详细产品资料请扫描文末二维码下载。

本次测试以隔离CPU3核心为例,通过降低系统上所运行的其他进程对隔离CPU3产生的延迟影响,确保CPU3进程的正常运行,进而评估Linux-RT内核的系统实时性。

评估板上电启动后,在U-Boot倒计时结束之前按下空格键进入U-Boot命令行模式,执行如下命令,修改环境变量,隔离CPU3核心。

U-Boot#setenv bootargs storagemedia=sd androidboot.storagemedia=sd androidboot.mode=normal isolcpus=3

U-Boot#saveenv

U-Boot#reset

图 3

评估板重启后,执行如下命令,查看环境变量。

Target#cat /proc/cmdline

图 4

进入评估板文件系统,执行如下命令,修改内核printk日志等级,避免内核打印信息影响实时测试。

Target#echo 1 > /proc/sys/kernel/printk

调整内存分配策略为“2”,禁用内存过度使用。避免出现OOM(Out-of-Memory) Killer攻击某些进程而产生延迟,影响测试结果。

Target#echo 2 > /proc/sys/vm/overcommit_memory

图5

执行如下命令,运行stress压力测试工具,使得CPU处于满负荷状态。再使用taskset工具将Cyclictest测试程序运行在CPU3核心,测试CPU3核心满负荷状态下的系统实时性能。测试指令需运行12小时,请保持评估板长时间稳定工作,测试完成后将生成统计结果iso_overload_output文件。

Target#stress-ng --cpu 4 --cpu-method=all --io 4 --vm 4 --vm-bytes 64M --timeout 43200s &

Target#taskset -c 0-3 cyclictest -m -Sp99 -i1000 -h800 -D12h -q > iso_overload_output

图 6

对测试结果文件的数据进行分析,使用脚本生成直方图,得到隔离CPU核心状态下的统计结果如下所示。本次测试中,CPU1核心Max Latencies值最大,为244us,隔离CPU3核心的Max Latencies值最小,为33us。

图7

表 1

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tronlong创龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值