Il kernel Linux offre molti meccanismi per diagnosticare i problemi, tra cui il tracciamento, il BPF e la profilazione. La maggior parte di queste tecniche è disponibile nel kernel binario GKI (Generic Kernel Image). Durante lo sviluppo dei prodotti, vengono integrati molti altri strumenti nei processi di sviluppo o integrazione, alcuni dei quali richiedono funzionalità del kernel non incluse in GKI. Come per la maggior parte delle funzionalità GKI, ti invitiamo a collaborare con i manutentori upstream per aggiungerle a Linux.
Funzionalità di debug a valle nei moduli del fornitore
Le funzionalità di debug hanno un ambito simile ad altri tipi di funzionalità e devono seguire le stesse procedure descritte in Patch specifiche per Android.
Funzionalità di debug intrusive a valle
Alcune funzionalità di debug utili richiedono opzioni di configurazione speciali che sono disabilitate in GKI e richiedono quindi una build speciale del kernel. Queste funzionalità potrebbero essere disattivate a causa di penalizzazioni delle prestazioni o di inidoneità all'uso in produzione, ma sono indispensabili per il debug di determinati tipi di problemi. Alcuni esempi di questi strumenti sono gli sterilizzatori (KASAN, UBSAN),
debugfs
e altre funzionalità e strumenti specifici per i partner.
Sta a te decidere come gestire i kernel speciali abilitati al debug che influiscono sull'interfaccia del modulo del kernel (KMI). Una prassi comune è avere una compilazione di debug interna e fornire gli elementi risultanti ai clienti interni o ai partner di sviluppo a valle. Consigliamo di continuare a isolare queste funzionalità in moduli, poiché le funzionalità di debug specifiche del partner non possono essere accettate nel kernel GKI oltre le linee guida descritte nelle patch specifiche per Android.