Funzionalità di debug

Il kernel Linux fornisce molti meccanismi per diagnosticare i problemi, tra cui tracciamento, BPF, e profilazione. La maggior parte di queste tecniche sono disponibili nel kernel binario Generic Kernel Image (GKI). Durante lo sviluppo dei prodotti, sono disponibili molti altri strumenti integrati nei processi di sviluppo o integrazione, alcuni dei quali richiedono funzionalità del kernel che non fanno parte di GKI. Come per la maggior parte delle funzionalità GKI, ti invitiamo a collaborare con i manutentori upstream per aggiungere queste funzionalità a Linux.

Funzionalità di debug downstream nei moduli dei fornitori

Le funzionalità di debug hanno un ambito simile ad altri tipi di funzionalità e devono seguire gli stessi processi descritti in patch specifiche per Android.

Funzionalità di debug downstream intrusive

Alcune funzionalità di debug utili richiedono opzioni di configurazione speciali disattivate in GKI e, di conseguenza, una build speciale del kernel. Queste funzionalità potrebbero essere disattivate a causa di penalità di rendimento o inadeguatezza per l'utilizzo in produzione, ma sono indispensabili per il debug di determinati tipi di problemi. Esempi di questi strumenti includono sanificatori (KASAN, UBSAN), debugfs e altre funzionalità e strumenti specifici dei partner.

Sta a te determinare come gestire i kernel speciali con debug abilitato che influiscono sull'interfaccia del modulo kernel (KMI). Una pratica comune è quella di avere una build di debug interna e di fornire gli artefatti risultanti ai clienti interni o ai partner di sviluppo downstream. Ti consigliamo di continuare a isolare queste funzionalità nei moduli, poiché le funzionalità di debug specifiche dei partner non possono essere accettate nel kernel GKI oltre le linee guida descritte nelle patch specifiche per Android.