mmcqd зависает и сжигает процессор на встроенном устройстве

mmcqd зависает и сжигает процессор на встроенном устройстве

На моей встроенной системе я записываю интенсивный видеопоток на 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— это процесс ядра, отвечающий за очередь ввода-вывода. Если вы получаете высокое потребление ресурсов из-за этого, это означает, что ваша SD-карта слишком медленная для вашего видеопотока.

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

Связанный контент