Функции отладки

Ядро Linux предоставляет множество механизмов для диагностики проблем, включая трассировку , BPF и профилирование . Большинство этих методов доступны в бинарном ядре Generic Kernel Image (GKI). При разработке продуктов существует множество дополнительных инструментов, которые интегрируются в процессы разработки или интеграции, некоторые из которых требуют функций ядра, не входящих в GKI. Как и в случае с большинством функций GKI, мы призываем вас работать с разработчиками вышестоящих версий, чтобы добавить эти функции в Linux.

Функции отладки в нисходящем направлении в модулях поставщика

Функции отладки по своему объему аналогичны другим типам функций и должны следовать тем же процессам, которые описаны в патчах для Android .

Навязчивые функции отладки в нисходящем направлении

Некоторые полезные функции отладки требуют специальных параметров конфигурации, которые отключены в GKI и, следовательно, требуют специальной сборки ядра. Эти функции могут быть отключены из-за снижения производительности или непригодности для производственного использования, но они незаменимы для отладки определенных типов проблем. Примерами таких инструментов являются санитайзеры (KASAN, UBSAN), debugfs и другие функции и инструменты, специфичные для партнеров.

Вам решать, как управлять специальными отладочными ядрами, которые влияют на Kernel Module Interface (KMI). Распространенной практикой является внутренняя отладочная сборка и доставка полученных артефактов внутренним клиентам или партнерам по разработке нижестоящего уровня. Мы рекомендуем продолжать изолировать такие функции в модулях, поскольку отладочные функции, специфичные для партнеров, не могут быть приняты в ядро ​​GKI за пределами рекомендаций, описанных в патчах, специфичных для Android .