【x3m】 ddr稳定性测试

DDR压力测试方案:

测试项

测试类别环境温度测试时长
DDR常温压力测试25度48H
DDR高温压力测试60度48H
DDR低温压力测试-25度48H

测试环境

DUT压力程序

ITEM版本号/设备编号适用测试项
测试脚本xj3_ddr_stress.tar.gz压力测试通用
DUT数量5台及以上压力测试通用

从 X3M附加工具包 的 DDR_Stress_Test选择对应sdk版本的目录下载 xj3_ddr_stress.tar.gz

设置CPU模式和降频温度

# 若设备重启需再次配置这两条指令
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor 
echo 105000 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp

执行压力测试脚本, 后台运行cpu test和bpu test

sh ./scripts/xj3-stress.sh
#1 cpu test
echo 4 > /proc/sys/vm/drop_caches
nohup /userdata/xj3_ddr_stress/bin/stressapptest -s 172800 -M 100 -f /tmp/sat.io1 -f /tmp/sat.io2 -i 4 -m 8 -C 2 -W >/userdata/cpu-stress.log &

Kernel随机panic

在DDR参数已经相对稳定了后,在长稳、高低温等长稳测试中,可能会发生一些随机的Kernel panic,每次panic的位置不同,且panic的位置多在Kernel的通用代码中。这种就没必要分析软件逻辑了,很可能是DDR不稳定或者软件内存破坏导致。

例如下图中出错的地址是ffc00000f630,而正常的ARM64的kernel是ffffff开头的。

比如下图中的错误地址,地址的最高24位由ffffff变成了fff7ffb,说明在bit52和bit59发生了翻转,这种问题经常在高低温测试中遇到

Stressapptest内存压力测试错误

DDR长稳测试中经常使用stressapptest做内存压力测试,开发中遇到怀疑有DDR故障的板子也可以使用stressapptest做一下测试,确认ddr问题。比如下面log,检测到miscompare错误,是DDR不稳定导致。

stressapptest是开源工具,可以进行内存、CPU和存储的压力测试。

预编译测试工具路径:sample\sample_base_test\bin

下载源码自行交叉编译:GitHub - stressapptest/stressapptest: Stressful Application Test - userspace memory and IO test

常用测试命令:

./stressapptest -M 128M -s 3600 -m 8 -i 8 -C 8 -l /userdata/x3_stressapptest.log --cc_test

类似下方的打印应当出现:

ECC错误检测

XJ3 系统软件支持DDR的ECC错误纠错、检测功能。打开ECC保护后,如果检测到ECC错误,也可以确认为DDR不稳定。

可以在如下sysfs接口中查询是否发生1bit、2bit和3bit以上翻转。

cat /sys/devices/platform/soc/a2d10000.ddr_monitor/ddr_ecc_stat

打开ECC后,如果发生了Kernel Panic,也会在panic log中打印ecc统计信息。如下图log,发生了2次2bit的翻转。

ECC保护可以通过下面命令打开,重启后生效。

hrut_ddr_ecc s on
reboot

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值