El kernel de Linux proporciona muchos mecanismos para diagnosticar problemas, como la rastreo, BPF y generación de perfiles. La mayoría de estas técnicas están disponibles en el kernel binario de la imagen genérica del kernel (GKI). Cuando se desarrollan productos, hay muchas más herramientas que se integran en los procesos de desarrollo o integración, algunas de las cuales requieren funciones del kernel que no forman parte de GKI. Al igual que con la mayoría de las funciones de GKI, te recomendamos que trabajes con los encargados de mantenimiento upstream para agregar estas funciones a Linux.
Funciones de depuración descendentes en módulos de proveedores
Las funciones de depuración son similares en alcance a otros tipos de funciones y deben seguir los mismos procesos que se describen en los parches específicos de Android.
Funciones de depuración downstream invasivas
Algunas funciones de depuración útiles requieren opciones de configuración especiales que están inhabilitadas en GKI y, por lo tanto, requieren una compilación especial del kernel. Es posible que estas funciones estén inhabilitadas debido a penalizaciones de rendimiento o a que no son adecuadas para el uso en producción, pero son indispensables para depurar ciertos tipos de problemas. Algunos ejemplos de estas herramientas son los sanitizadores (KASAN, UBSAN), debugfs
y otras funciones y herramientas específicas de los socios.
Depende de ti determinar cómo administras los kernels especiales habilitados para depuración que afectan la interfaz del módulo del kernel (KMI). Una práctica común es tener una compilación de depuración interna y entregar los artefactos resultantes a los clientes internos o a los socios de desarrollo descendentes. Recomendamos seguir aislando esas funciones en módulos, ya que las funciones de depuración específicas de los socios no se pueden aceptar en el kernel de GKI más allá de los lineamientos descritos en los parches específicos de Android.