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 卡。彈出/插入後系統回應的原因是佇列被清除。

相關內容