Le noyau Linux fournit de nombreux mécanismes pour diagnostiquer les problèmes, y compris le traceur, le BPF et le profilage. La plupart de ces techniques sont disponibles dans le noyau binaire GKI (Generic Kernel Image). Lors du développement de produits, de nombreux autres outils sont intégrés aux processus de développement ou d'intégration, dont certains nécessitent des fonctionnalités de noyau qui ne font pas partie de GKI. Comme pour la plupart des fonctionnalités GKI, nous vous encourageons à travailler avec des responsables en amont afin d'ajouter ces fonctionnalités à Linux.
Fonctionnalités de débogage en aval dans les modules du fournisseur
Les fonctionnalités de débogage ont une portée similaire à celle des autres types de fonctionnalités et doivent suivre les mêmes processus que ceux décrits dans les correctifs spécifiques à Android.
Fonctionnalités de débogage en aval intrusives
Certaines fonctionnalités de débogage utiles nécessitent des options de configuration spéciales qui sont désactivées dans GKI et nécessitent donc une version spéciale du noyau. Ces fonctionnalités peuvent être désactivées en raison de pénalités de performances ou de leur inadéquation à une utilisation en production, mais elles sont indispensables pour déboguer certains types de problèmes. Exemples d'outils de ce type : nettoyants (KASAN, UBSAN), debugfs
et autres fonctionnalités et outils spécifiques aux partenaires.
C'est à vous de déterminer comment gérer les noyaux spéciaux compatibles avec le débogage qui ont une incidence sur l'interface de module du noyau (KMI, Kernel Module Interface). Il est courant de créer un build de débogage interne et de fournir les artefacts qui en résultent aux clients internes ou aux partenaires de développement en aval. Nous vous recommandons de continuer à isoler ces fonctionnalités dans des modules, car les fonctionnalités de débogage spécifiques aux partenaires ne peuvent pas être acceptées dans le noyau GKI au-delà des consignes décrites dans les correctifs spécifiques à Android.