Funciones de depuración

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 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 tienen un alcance similar 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 descendentes 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 administrar los kernels especiales habilitados para la depuración que afectan la interfaz de módulo de 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. Te recomendamos que sigas aislando esas funciones en módulos, ya que no se aceptan funciones de depuración específicas de socios en el kernel de GKI más allá de los lineamientos que se describen en los parches específicos de Android.