mmcqdは内蔵デバイスでCPUを停止して消費します。

mmcqdは内蔵デバイスでCPUを停止して消費します。

私の組み込みシステムでは、密度の高いビデオストリームを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

mmcqdI/O キューを担当するカーネルプロセスです。これにより、リソース使用率が高くなると、SDカードはビデオストリーミングに遅すぎます。

この場合、ビデオストリーミング用に設計されたクラス10 SDカードまたはUHSカードが必須です。ポップ/挿入後にシステムが応答する理由は、キューが消去されたためです。

おすすめ記事