El kernel de Linux proporciona muchos mecanismos para diagnosticar problemas, como el seguimiento, BPF y la 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 del GKI. Al igual que con la mayoría de las funciones del GKI, te recomendamos que trabajes con los mantenedores upstream para agregar estas funciones a Linux.
Funciones de depuración de nivel inferior en módulos del proveedor
Las funciones de depuración tienen un alcance similar al de otros tipos de funciones y deben seguir los mismos procesos que se describen en Parches específicos para Android.
Funciones de depuración downstream intrusivas
Algunas funciones de depuración útiles requieren opciones de configuración especiales que están inhabilitadas en el 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 su inadecuación 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 para socios.
Depende de ti determinar cómo administrar los kernels especiales habilitados para la 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 posteriores. Recomendamos seguir aislando esas funciones en módulos, ya que las funciones de depuración específicas del socio no se pueden aceptar en el kernel del GKI más allá de los lineamientos que se describen en Parches específicos de Android.