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

Linux kernel eMMC随机写入需要更长的时间,linux-kernel,storage,flash-memory,Linux Kernel,Storage,Flash Memory,我正在分析向eMMC写入1MB所需的时间。它应该发生在停电期间,因此时间是至关重要的 我发现写操作可以在40毫秒内完成,这很好。 然而,随机(几百分之一)需要超过200毫秒,这是不好的 为什么会发生这么长的写入时间。是Linux,还是正在做家务的eMMC。我怀疑eMMC,但我没有找到任何关于这方面的文章。如有任何推荐,将不胜感激 在启动其他任何东西之前,我在init脚本中运行这个测试脚本,因此该脚本与所有资源是单独的 dd bs=4096 count=128 if=/dev/zero of=/t

我正在分析向eMMC写入1MB所需的时间。它应该发生在停电期间,因此时间是至关重要的

我发现写操作可以在40毫秒内完成,这很好。
然而,随机(几百分之一)需要超过200毫秒,这是不好的

为什么会发生这么长的写入时间。是Linux,还是正在做家务的eMMC。我怀疑eMMC,但我没有找到任何关于这方面的文章。如有任何推荐,将不胜感激

在启动其他任何东西之前,我在init脚本中运行这个测试脚本,因此该脚本与所有资源是单独的

dd bs=4096 count=128 if=/dev/zero of=/tmp/e2
t=0
计数=0
而[$t-lt 20]
做
t=$(时间dd if=/tmp/e2 of=/rootfs/data/test nvram bs=4m2>&1)
t=$(echo$t|awk/real/'{print$9}'| tr-d's.)
echo$count$t
count=`expr$count+1`
完成
我还尝试直接写入/dev/mmcblk0p1,结果相同,因此文件系统似乎并不重要。在完整系统上执行lttng似乎表明CPU正在等待来自eMMC的中断

我的设置是: ARMv7 LS1021A双核,1GHz
Linux内核4.14.34

eMMC:Micron MTFC8GAKAJCN-4M IT

数据表中对最坏情况下的编程时间有何规定?数据表中完全没有说明。平均40毫秒。