デバッグ

Linuxカーネルは、トレースBPFプロファイリングなどの問題を診断するための多くのメカニズムを提供します。これらの手法のほとんどは、Generic Kernel Image(GKI)バイナリカーネルで利用できます。製品を開発する場合、開発または統合プロセスに統合されるツールは他にもたくさんあり、その一部にはGKIの一部ではないカーネル機能が必要です。ほとんどのGKI機能と同様に、アップストリームのメンテナと協力してこれらの機能をLinuxに追加することをお勧めします。

ベンダーモジュールのダウンストリームデバッグ機能

デバッグ機能は、範囲が他の種類の機能と類似しており、 Android固有のパッチで説明されているのと同じプロセスに従う必要があります。

煩わしいダウンストリームデバッグ機能

一部の便利なデバッグ機能には、GKIで無効になっている特別な構成オプションが必要であるため、カーネルの特別なビルドが必要です。これらの機能は、パフォーマンスの低下や本番環境での使用に適さないために無効になっている可能性がありますが、特定の種類の問題のデバッグには不可欠です。このようなツールの例には、サニタイザー(KASAN、UBSAN)、 debugfs 、およびその他のパートナー固有の機能とツールが含まれます。

カーネルモジュールインターフェイス(KMI)に影響を与える特別なデバッグ対応カーネルをどのように管理するかはあなた次第です。一般的な方法は、内部デバッグをビルドして、結果のアーティファクトを内部顧客またはダウンストリーム開発パートナーに配信することです。 Android固有のパッチで説明されているガイドラインを超えてパートナー固有のデバッグ機能をGKIカーネルに受け入れることができないため、このような機能をモジュールに分離し続けることをお勧めします。