mmcqd bloquea y quema la CPU en el dispositivo integrado

mmcqd bloquea y quema la CPU en el dispositivo integrado

En mi sistema integrado estoy escribiendo una transmisión de video intensiva en SD. No monto particiones, solo escribo en /dev/mmcblk0p1. Después de un tiempo, mi proceso de escritura se bloquea. yo obtengo

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

[mmcqd]se come el 90% y dmesg me lo muestra

[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

Después de expulsar/inyectar una tarjeta, todo funciona bien. Por favor, ayúdame a depurarlo.

Kernel de Linux: 2.6.28.9

Respuesta1

mmcqdes un proceso del kernel responsable de la cola de E/S. Si estás obteniendo un alto uso de recursos debido a esto, eso significa que tu tarjeta SD es demasiado lenta para tu transmisión de video.

En casos como este, realmente necesitas una tarjeta SD de clase 10 o una tarjeta UHS diseñada para transmisión de video. La razón por la que el sistema responde después de una expulsión/inserción es porque se borra la cola.

información relacionada