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

mmcqd – это процесс ядра, ответственный за очередь ввода-вывода. Если вы получаете большое использование ресурсов из этого, это означает, что ваша SD-карта слишком медленная для вашего видеопотока.

В таких случаях вам действительно нужна SD-карта класса 10 или карта UHS, предназначенная для потоковой передачи видео. Причина, по которой система реагирует после извлечения / вставки, состоит в том, что очередь очищается.