调试

Linux 内核提供了许多诊断问题的机制,包括跟踪BPF性能分析。其中的大多数技术在通用内核映像 (GKI) 二进制内核中都有提供。在开发产品时,开发或集成流程中集成了更多的工具,其中一些工具需要用到 GKI 中没有的内核功能。与大多数 GKI 功能一样,我们建议您与上游维护者合作来将这些功能添加到 Linux 中。

供应商模块中的下游调试功能

调试功能的作用范围与其他类型的功能类似,并且必须遵循 Android 专用补丁中所述的相同流程。

下游调试功能带来的干扰

一些有用的调试功能需要一些特殊的配置选项,而这些选项在 GKI 中已停用,因此需要特殊的内核 build。这些选项可能是因为影响性能或不适合在生产环境中使用而被停用,但对于调试特定类型的问题却必不可少。此类工具的示例包括排错程序(KASAN、UBSAN)、debugfs 和其他合作伙伴专用功能和工具。

如何管理影响内核模块接口 (KMI) 的启用调试功能的特殊内核由您自己决定。常见做法是创建一个内部调试 build,并将生成的工件提供给内部客户或下游开发合作伙伴。我们建议继续将此类功能隔离在模块中,因为不能将合作伙伴专用调试功能纳入到 GKI 内核中,这不符合 Android 专用补丁中所述的准则。