Debug-Funktionen

Der Linux-Kernel bietet zahlreiche Mechanismen zur Problemdiagnose, darunter Tracing , BPF und Profiling . Die meisten dieser Techniken sind im Binärkernel Generic Kernel Image (GKI) verfügbar. Bei der Entwicklung von Produkten werden viele weitere Tools in die Entwicklungs- oder Integrationsprozesse integriert, von denen einige Kernelfunktionen erfordern, die nicht Teil von GKI sind. Wie bei den meisten GKI-Funktionen empfehlen wir Ihnen, mit Upstream-Betreuern zusammenzuarbeiten, um diese Funktionen zu Linux hinzuzufügen.

Nachgelagerte Debugfunktionen in Anbietermodulen

Debugging-Funktionen haben einen ähnlichen Umfang wie andere Arten von Funktionen und müssen denselben Prozessen folgen, die in Android-spezifischen Patches beschrieben sind.

Aufdringliche Downstream-Debugfunktionen

Einige nützliche Debugfunktionen erfordern spezielle Konfigurationsoptionen, die in GKI deaktiviert sind und daher einen speziellen Build des Kernels erfordern. Diese Funktionen sind möglicherweise aufgrund von Leistungseinbußen oder mangelnder Eignung für den Produktionseinsatz deaktiviert, sind jedoch für die Fehlerbehebung bestimmter Arten von Problemen unverzichtbar. Beispiele für solche Tools sind Sanitizer (KASAN, UBSAN), debugfs und andere partnerspezifische Funktionen und Tools.

Es liegt an Ihnen, zu bestimmen, wie Sie spezielle Debug-fähige Kernel verwalten, die sich auf die Kernel Module Interface (KMI) auswirken. Eine gängige Praxis besteht darin, einen internen Debug-Build zu erstellen und die resultierenden Artefakte an interne Kunden oder nachgelagerte Entwicklungspartner zu liefern. Wir empfehlen, solche Funktionen weiterhin in Modulen zu isolieren, da partnerspezifische Debugfunktionen nicht über die in Android-spezifischen Patches beschriebenen Richtlinien hinaus in den GKI-Kernel akzeptiert werden können.