Я пытаюсь отладить драйвер устройства, который, очевидно, вызывает другие
Задача повесить. Это определенно то, что задача или в какое время это
будет висеть.
По сути, я получил сообщение об ошибке из ядра, в котором говорится, что «задача имеет
был заблокирован на более чем 120 секунд ", вместе с некоторым следом стека.
Зависшие задачи варьируются от sendmail до mkfs и pdflush (поток ядра).
И самая верхняя функция в трассировке стека отличается от "getnstimeofday"
"bio_submit" в "mark_locks_held".
Мне трудно отлаживать это, так как очень трудно найти
проблема. Трассировка стека, предоставляемая ядром, не очень полезна
ни. Согласно этим следам стека, некоторые из этих зависших процессов
даже не пытаются захватить замок (как в getnstimeofday
функции), и я понятия не имею, почему они зависают.
Так что мне интересно, есть ли у кого-нибудь идеи о том, как отладить такой
проблема. Будет ли здесь полезен kgdb, может быть, давая мне именно то, что
указать процесс зависает, и какой блокировки он ждет?
Любые предложения приветствуются.