Funzioni di debug

Il kernel Linux fornisce molti meccanismi per diagnosticare problemi tra cui traccia , BPF e profilazione . La maggior parte di queste tecniche sono disponibili nel kernel binario Generic Kernel Image (GKI). Quando si sviluppano 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 con la maggior parte delle funzionalità GKI, ti invitiamo a collaborare con i manutentori originali per aggiungere queste funzionalità a Linux.

Funzionalità di debug downstream nei moduli del fornitore

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

Funzionalità di debug downstream invadenti

Alcune utili funzionalità di debug richiedono opzioni di configurazione speciali che sono disabilitate in GKI e quindi richiedono una build speciale del kernel. Queste funzionalità potrebbero essere disabilitate a causa di penalità prestazionali o di inidoneità all'uso in produzione, ma sono indispensabili per il debug di determinati tipi di problemi. Esempi di tali strumenti includono disinfettanti (KASAN, UBSAN), debugfs e altre funzionalità e strumenti specifici dei partner.

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