Trampa eBPF: El FRED en el Kernel de Linux 6.9+
2025-03-01
El kernel de Linux 6.9+ introduce CONFIG_X86_FRED en x86_64, añadiendo 16 bytes de relleno al final de la pila del kernel de una tarea. Esto rompe los programas eBPF que acceden directamente a la pila del kernel y pt_regs, devolviendo basura. El autor encontró este problema con su herramienta eBPF xcapture-next después de actualizar al kernel 6.11. El análisis reveló el desplazamiento de la pila de FRED como el culpable. Se presenta un mecanismo de detección dinámica de FRED para ajustar los cálculos de la dirección de la pila, resolviendo el problema. Este artículo es crucial para los desarrolladores de eBPF, especialmente aquellos que trabajan con la manipulación sin procesar de la pila del kernel.
Desarrollo