ioctl собственного ядра Linux перестает отвечать на запросы и запускается через несколько минут - PullRequest
0 голосов
/ 14 марта 2012

Настройка:
У меня есть процесс CP, который вызывает IOCTL.Затем обработчик IOCTL ядра записывает что-то на аппаратное обеспечение и возвращает результат.Этот сторожевой таймер происходит с периодической периодичностью.

Проблема:
Использование отладочных отпечатков Я проверил, что процесс CP и модуль ядра прекращают печать отладок одновременноМодуль ядра всегда выполнял свою задачу.Через пару минут отладки снова начинают печататься.Пока проблема существует, я проверил, что само ядро ​​не зависло, запустив ls, top и т. Д.Так с чего мне начать искать?

Ответы [ 2 ]

0 голосов
/ 17 марта 2014

Так с чего мне начать искать?

Я бы начал с использования strace -eioctl ..., чтобы проверить, происходят ли вызовы вообще, пока существует проблема.

0 голосов
/ 22 марта 2012

Использует ли ваш обработчик IOCTL блокирующий доступ ввода-вывода к оборудованию?Если обработчику IOCTL пришлось ждать аппаратного ответа, то время могло бы превысить ограничение времени сторожевого таймера и вызвать перезагрузку сторожевого таймера.Может быть, проверка того, как получить доступ к оборудованию, - это направление для начала.

...