Я пытаюсь отладить драйвер устройства, который, по-видимому, вызывает другую задачу . Детерминировано, что какая задача или в какое время будет висеть .Отладка ядра для зависания процесса?
В основном у меня появилось сообщение об ошибке из ядра, в котором говорилось, что «задача имеет заблокирована более 120 секунд», а также некоторые трассировки стека. нависшая задача варьируется от Sendmail до МКФСА к pdflush (ядра нити». И верхней функции трассировки стеки отличаться от„getnstimeofday“ на„bio_submit“на„mark_locks_held“.
Я с трудом так как очень сложно найти проблему . Трассировка стека, предоставляемая ядром, не очень полезна . В соответствии с этими трассировками стека некоторые из этих зависающих процессов даже не пытаются захватить блокировку (например, в функция getnstimeofday ), и я понятия не имею, почему они висят.
Так что мне интересно, есть ли у кого-нибудь идея о том, как отладить такую проблему . Будет ли полезно использовать kgdb здесь, может быть, давая мне именно то, что указывает, что процесс зависает, и какой замок он ждет?
Любые предложения приветствуются.
Является ли ваше ядро скомпилированным для использования указателей на рамки? – Karmastan
Нет, это не так. Однако у него есть все опции отладки. – yangsuli