Как бы вы отлаживали ошибку в драйвере Linux?

Сначала воспроизведите сбой на безопасном стенде и соберите kernel logs, stack trace и точную сборку. Инструменты выбирайте по классу ошибки: память, гонка, блокировка или логика устройства.

Короткий ответ

Что ответить на собеседовании

Сначала воспроизведите сбой на безопасном стенде и соберите kernel logs, stack trace и точную сборку. Инструменты выбирайте по классу ошибки: память, гонка, блокировка или логика устройства.

Подробный разбор

Ответ с пояснениями

Сначала воспроизведите сбой на безопасном стенде и соберите kernel logs, stack trace и точную сборку. Инструменты выбирайте по классу ошибки: память, гонка, блокировка или логика устройства.

Для повреждений памяти полезны KASAN и соответствующие диагностические сборки, для блокировок — lockdep, для потока событий — tracing/ftrace и точечные сообщения. Сопоставляйте адреса с символами именно той версии ядра и модуля, которая упала.

Проверьте контекст вызова, сроки жизни объектов, обработку IRQ, выгрузку и пути ошибок. Уменьшайте сценарий до воспроизводимого, затем проверяйте исправление под исходной нагрузкой. Некоторые инструменты меняют тайминги и требуют пересборки; не включайте тяжёлую диагностику на рабочем устройстве без согласования и плана восстановления.

Источник: docs.kernel.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее