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

카드 꺼내기/삽입 후 모든 것이 잘 작동합니다. 디버깅할 수 있도록 도와주세요.

리눅스 커널: 2.6.28.9

답변1

mmcqdI/O 큐를 담당하는 커널 프로세스입니다. 이로 인해 리소스 사용량이 높아지면 SD 카드가 비디오 스트림에 비해 너무 느린 것입니다.

이런 경우에는 비디오 스트리밍용으로 설계된 클래스 10 SD 카드나 UHS 카드가 꼭 필요합니다. 꺼내기/삽입 후에 시스템이 응답하는 이유는 대기열이 지워지기 때문입니다.

관련 정보