Una propuesta para habilitar el trazado de funciones inline en BPF

Fuentes: Debugging information for inlined functions

Alan Maguire, ingeniero de Oracle, propuso añadir información de funciones inline al formato de metadatos BTF del kernel Linux durante una sesión del Linux Storage, Filesystem, Memory-Management, and BPF Summit 2026. El objetivo es resolver un problema práctico: el kernel contiene más de 100.000 funciones inline repartidas en unas 500.000 ubicaciones, y los trazadores actuales no siempre localizan todas sus invocaciones, lo que produce trazas incompletas. La infraestructura basada en kprobes ya permite fijar puntos de trazado arbitrarios, pero falta el dato sobre dónde se inlineó cada función y en qué condiciones.

Maguire plantea tres nuevos bloques de información en BTF: una sección de ubicación con datos específicos de cada punto de llamada, prototipos de ubicación y parámetros de ubicación, estos dos últimos susceptibles de deduplicación. En el kernel actual, los 538.090 puntos de llamada con inline se reducen a 57.141 prototipos y 17.535 parámetros distintos, lo que mantiene la sobrecarga en torno a 11 MB de datos adicionales, o unos 21 bytes por punto de llamada, y a 3,5 MB si se empaqueta en un módulo aparte comprimido.

El diseño también introduce en BTF metainformación sobre cómo parsearse, para evitar la fragilidad que aqueja a DWARF cuando se añaden etiquetas desconocidas. Maguire actualizó la herramienta pahole para ordenar las nuevas etiquetas y prevé compatibilidad con módulos out-of-tree mediante BTF reubicable. Alexei Starovoitov, Andrii Nakryiko y otros asistentes discutieron detalles sobre ordenación, compresión y soporte modular, sin cerrar acuerdos definitivos. El parche, enviado el 8 de octubre de 2025, aún no se ha integrado en el kernel.