mmcqd hängt und brennt die CPU auf dem eingebetteten Gerät

mmcqd hängt und brennt die CPU auf dem eingebetteten Gerät

Auf meinem eingebetteten System schreibe ich einen intensiven Videostream auf SD. Ich mounte keine Partitionen, sondern schreibe nur auf /dev/mmcblk0p1. Nach einer Weile bleibt mein Schreibvorgang hängen. Ich bekomme

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

[mmcqd]isst 90% und dmesg zeigt mir

[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

Nach dem Auswerfen/Einstecken der Karte funktioniert alles einwandfrei. Bitte helfen Sie mir, das Problem zu beheben.

Linux-Kernel: 2.6.28.9

Antwort1

mmcqdist ein Kernelprozess, der für die E/A-Warteschlange verantwortlich ist. Wenn dadurch eine hohe Ressourcennutzung auftritt, bedeutet dies, dass Ihre SD-Karte für Ihren Videostream zu langsam ist.

In solchen Fällen benötigen Sie unbedingt eine SD-Karte der Klasse 10 oder eine UHS-Karte, die für Videostreaming entwickelt wurde. Der Grund, warum das System nach dem Auswerfen/Einstecken reagiert, liegt darin, dass die Warteschlange geleert wird.

verwandte Informationen