私の組み込みシステムでは、密度の高いビデオストリームをSDに書き込みます。パーティションをマウントせずに書きます/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カードが必須です。ポップ/挿入後にシステムが応答する理由は、キューが消去されたためです。