Una investigación técnica en el núcleo de CPU Loongson LA664 —utilizado en las series 3C6000/S y 3A6000— ha revelado un erratum de hardware relacionado con el fallo de las instrucciones atómicas. El problema se manifiesta como una 'actualización perdida', donde una operación atómica (como una suma) no logra registrar correctamente un cambio en una variable compartida. Esto se observó por primera vez durante el empaquetado del software matemático `normaliz` para Debian, donde un bucle de procesamiento paralelo se quedó bloqueado en un bucle infinito porque una variable de contador no alcanzó su valor esperado a pesar de que todos los puntos de datos habían sido procesados.

Esta imagen ilustra el erratum de hardware específico identificado en el núcleo de CPU Loongson LA664 con respecto a las actualizaciones atómicas perdidas.
La causa raíz se identificó como una interacción específica entre las instrucciones atómicas de la CPU y las operaciones de memoria vectorizadas. Específicamente, la instrucción `amadd` (suma atómica) puede perder actualizaciones cuando se ejecuta a través de diferentes núcleos físicos sin una barrera de datos, siempre que al menos un hilo intercale un tipo específico de lectura de memoria entre sus operaciones atómicas. Aunque la lectura de memoria vectorizada de 256 bits LASX (`xvld`) fue el principal activador identificado, pruebas adicionales mostraron que incluso las lecturas escalares estándar podrían activar el problema si las direcciones de memoria de la variable atómica y la operación de lectura comparten una relación posicional particular. Esta complejidad explica por qué el error permaneció oculto durante las pruebas iniciales.
Loongson ha abordado el erratum con una corrección de firmware que modifica un registro de configuración interno (MCSR24). Esta corrección garantiza que las instrucciones atómicas se comporten correctamente sin una degradación significativa del rendimiento, manteniendo el rendimiento de un solo núcleo sin cambios y mostrando solo una ligera caída en el rendimiento multinúcleo. Se espera que la corrección se publique en una actualización de firmware antes del 1 de octubre de 2026. La investigación destacó cómo las optimizaciones de hardware modernas, como las copias de memoria vectorizadas en `glibc`, pueden interactuar con las primitivas atómicas de bajo nivel de formas que son difíciles de predecir sin pruebas rigurosas en múltiples arquitecturas.