El incidente se manifestó como congelamientos periódicos del sistema Linux de 250ms mientras se ejecutaba el profiler Superluminal. La causa raíz fue una compleja race condition en la implementación del spinlock resiliente en cola (rqspinlock) del kernel Linux, específicamente en la función bpf_ringbuf_reserve utilizada por los programas eBPF de Superluminal. El problema surgió de la interacción entre Non-Maskable Interrupts (NMIs) de sampling y programas eBPF de context switch que intentaban adquirir el mismo rqspinlock en el mismo CPU.
La cascada de fallo comenzó cuando un programa eBPF de context switch adquiría el rqspinlock. Si una NMI de sampling se disparaba en el mismo CPU después de que el lock fuera adquirido pero antes de que la tabla de locks held del CPU se actualizara, el rqspinlock entraba en un estado inconsistente. Cuando el programa eBPF de sampling intentaba adquirir el mismo lock, la detección de deadlock recursivo (AA deadlock) del rqspinlock fallaba porque el lock no estaba registrado en la tabla. Esto llevaba a que el NMI spin-wait por el lock durante el timeout predeterminado de 250ms, congelando el CPU y, por ende, el sistema.
Las salvaguardas existentes fallaron debido a la naturaleza de las NMIs, que no pueden ser deshabilitadas por software y pueden interrumpir el código en puntos críticos. Aunque rqspinlock fue diseñado para ser resiliente y detectar deadlocks, el race condition específico en la actualización de la tabla de locks held antes de la detección de deadlocks permitió que el problema persistiera. Además, se descubrieron dos problemas secundarios: la detección de deadlocks no se activaba inmediatamente (causando stalls de 1-2ms) y múltiples NMIs podían inanicionar al holder del lock, impidiendo su progreso y causando stalls más largos (6-26ms). La introducción de rqspinlock en el ring buffer de eBPF en el kernel 6.15 expuso estos problemas que no existían en versiones anteriores del kernel.