Funktionen zur Fehlerbehebung

Der Linux-Kernel bietet viele Mechanismen zur Diagnose von Problemen, darunter Tracing, BPF und Profiling. Die meisten dieser Techniken sind im binären Kernel des Generic Kernel Image (GKI) verfügbar. Bei der Entwicklung von Produkten werden viele weitere Tools in die Entwicklungs- oder Integrationsprozesse eingebunden. Einige davon erfordern Kernelfunktionen, die nicht Teil von GKI sind. Wie bei den meisten GKI-Funktionen empfehlen wir Ihnen, mit Upstream-Maintainern zusammenzuarbeiten, um diese Funktionen zu Linux hinzuzufügen.

Nachgelagerte Funktionen zur Fehlerbehebung in Anbietermodulen

Debugging-Funktionen haben einen ähnlichen Umfang wie andere Funktionen und müssen denselben Prozessen folgen wie unter Android-spezifische Patches beschrieben.

Intrusive downstream debug features

Einige nützliche Debugfunktionen erfordern spezielle Konfigurationsoptionen, die in GKI deaktiviert sind und daher einen speziellen Kernel-Build erfordern. Diese Funktionen sind möglicherweise aufgrund von Leistungseinbußen oder Unzulässigkeit für die Produktionsnutzung deaktiviert, aber für die Behebung bestimmter Arten von Problemen unerlässlich. Beispiele für solche Tools sind Sanitizer (KASAN, UBSAN), debugfs und andere partnerspezifische Funktionen und Tools.

Sie müssen selbst entscheiden, wie Sie spezielle debugfähige Kernel verwalten, die sich auf die Kernel-Modul-Schnittstelle (Kernel Module Interface, KMI) auswirken. Häufig wird ein interner Debug-Build erstellt und die resultierenden Artefakte an interne Kunden oder nachgelagerte Entwicklungspartner gesendet. Wir empfehlen, diese Funktionen weiterhin in Module zu isolieren, da partnerspezifische Fehlerbehebungsfunktionen nicht über die Richtlinien unter Android-spezifische Patches hinaus in den GKI-Kernel übernommen werden können.