mmcqd挂起并烧毁嵌入式设备上的CPU

mmcqd挂起并烧毁嵌入式设备上的CPU

在我的嵌入式系统上,我正在将密集视频流写入标清。我不挂载分区,只是写入/dev/mmcblk0p1.一段时间后,我的写作过程挂起。我明白了

[16952.240000] INFO: task vrec:1297 blocked for more than 120 seconds.

[mmcqd]吃了 90%,dmesg 向我展示

[64142.350000] mmc0: starting CMD13 arg e6240000 flags 00000015
[64142.350000] mmc0: req done (CMD13): 0: 00000c00 00000000 00000000 00000000
[64142.350000] mmc0: starting CMD13 arg e6240000 flags 00000015
[64142.350000] mmc0: req done (CMD13): 0: 00000c00 00000000 00000000 00000000
[64142.350000] mmc0: starting CMD13 arg e6240000 flags 00000015
[64142.350000] mmc0: req done (CMD13): 0: 00000c00 00000000 00000000 00000000
[64142.350000] mmc0: starting CMD13 arg e6240000 flags 00000015
[64142.350000] mmc0: req done (CMD13): 0: 00000c00 00000000 00000000 00000000
[64142.350000] mmc0: starting CMD13 arg e6240000 flags 00000015
[64142.350000] mmc0: req done (CMD13): 0: 00000c00 00000000 00000000 00000000

卡弹出/插入后一切正常。请帮我调试一下。

Linux内核:2.6.28.9

答案1

mmcqd是负责I/O队列的内核进程。如果您由此获得较高的资源使用率,则意味着您的 SD 卡对于视频流而言速度太慢。

在这种情况下,您确实需要一张 10 级 SD 卡或专为视频流设计的 UHS 卡。弹出/插入后系统响应的原因是队列被清除。

相关内容