eMMC随机写入需要更长的时间

问题描述

我正在分析将1 MB写入emmC需要多长时间。它应该在电源故障期间发生,因此时间很关键。

我发现写操作可以在40毫秒内完成,这很好。
但是,随机(数百个中的一个)要花费200毫秒以上的时间,这很糟糕。

为什么这么长的写入时间会发生。是Linux,还是正在做一些整理工作的emmC。我怀疑emmC,但是我找不到有关此的任何文章。任何参考将不胜感激。

在启动其他任何脚本之前,我都会在init脚本中运行此测试脚本,因此该脚本将与所有资源一起存在

dd bs=4096 count=128 if=/dev/zero of=/tmp/e2
t=0
count=0
while [ $t -lt 20 ]
do
t=$(time dd if=/tmp/e2 of=/rootfs/data/test-nvram bs=4M 2>&1)
t=$(echo $t | awk /real/'{print $9}' | tr -d 's.' )
echo $count $t
count=`expr $count + 1`
done

我也曾尝试直接将 / dev / mmcblk0p1 写入相同的结果,因此文件系统似乎无关紧要。在整个系统上进行lttng似乎表明,cpu正在等待来自emmC的中断。

我的设置是: ARMv7 LS1021A双核,1GHz
Linux内核4.14.34
emmC:Micron MTFC8GAKAJCN-4M IT

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)