本文主要介紹瑞芯微RK3562J的實(shí)時(shí)性測(cè)試,開(kāi)發(fā)環(huán)境如下: U-Boot:U-Boot-2017.09 Kernel:Linux-RT-5.10.198 LinuxSDK: LinuxSDK-[版本號(hào)] (基于RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220) RK3562J實(shí)時(shí)性測(cè)試數(shù)據(jù) 本文使用Cyclictest延遲檢測(cè)工具測(cè)試Linux系統(tǒng)實(shí)時(shí)性,分別在CPU空載、滿負(fù)荷(運(yùn)行stress壓力測(cè)試工具)、滿負(fù)載-隔離CPU3核心(運(yùn)行stress壓力測(cè)試工具)三種情況下運(yùn)行指令測(cè)試12小時(shí)。 圖 1 RK3562J實(shí)時(shí)性測(cè)試數(shù)據(jù) 根據(jù)3種狀態(tài)的測(cè)試結(jié)果可知,當(dāng)程序指定至隔離的CPU3核心上運(yùn)行時(shí),Linux系統(tǒng)延遲最低,可有效提高系統(tǒng)實(shí)時(shí)性。故推薦對(duì)實(shí)時(shí)性要求較高的程序(功能)指定至隔離的CPU核心運(yùn)行。 RK3562J典型應(yīng)用領(lǐng)域 圖 2 Cyclictest系統(tǒng)實(shí)時(shí)性測(cè)試 本文通過(guò)創(chuàng)龍科技TL3562-EVM工業(yè)評(píng)估板(基于RK3562J)的硬件平臺(tái)進(jìn)行演示。為了簡(jiǎn)化描述,本文僅摘錄部分方案功能描述與測(cè)試結(jié)果。 本次測(cè)試以隔離CPU3核心為例,通過(guò)降低系統(tǒng)上所運(yùn)行的其他進(jìn)程對(duì)隔離CPU3產(chǎn)生的延遲影響,確保CPU3進(jìn)程的正常運(yùn)行,進(jìn)而評(píng)估Linux-RT內(nèi)核的系統(tǒng)實(shí)時(shí)性。 評(píng)估板上電啟動(dòng)后,在U-Boot倒計(jì)時(shí)結(jié)束之前按下空格鍵進(jìn)入U(xiǎn)-Boot命令行模式,執(zhí)行如下命令,修改環(huán)境變量,隔離CPU3核心。 U-Boot#setenv bootargs storagemedia=sd androidboot.storagemedia=sd androidboot.mode=normal isolcpus=3 U-Boot#saveenv U-Boot#reset 圖 3 評(píng)估板重啟后,執(zhí)行如下命令,查看環(huán)境變量。 Target#cat /proc/cmdline 圖 4 進(jìn)入評(píng)估板文件系統(tǒng),執(zhí)行如下命令,修改內(nèi)核printk日志等級(jí),避免內(nèi)核打印信息影響實(shí)時(shí)測(cè)試。 Target#echo 1 > /proc/sys/kernel/printk 調(diào)整內(nèi)存分配策略為“2”,禁用內(nèi)存過(guò)度使用。避免出現(xiàn)OOM(Out-of-Memory) Killer攻擊某些進(jìn)程而產(chǎn)生延遲,影響測(cè)試結(jié)果。 Target#echo 2 > /proc/sys/vm/overcommit_memory 圖5 執(zhí)行如下命令,運(yùn)行stress壓力測(cè)試工具,使得CPU處于滿負(fù)荷狀態(tài)。再使用taskset工具將Cyclictest測(cè)試程序運(yùn)行在CPU3核心,測(cè)試CPU3核心滿負(fù)荷狀態(tài)下的系統(tǒng)實(shí)時(shí)性能。測(cè)試指令需運(yùn)行12小時(shí),請(qǐng)保持評(píng)估板長(zhǎng)時(shí)間穩(wěn)定工作,測(cè)試完成后將生成統(tǒng)計(jì)結(jié)果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 對(duì)測(cè)試結(jié)果文件的數(shù)據(jù)進(jìn)行分析,使用腳本生成直方圖,得到隔離CPU核心狀態(tài)下的統(tǒng)計(jì)結(jié)果如下所示。本次測(cè)試中,CPU1核心Max Latencies值最大,為244us,隔離CPU3核心的Max Latencies值最小,為33us。 圖7 表 1 |