Se ha identificado un error en el kernel de Linux que provoca el mal funcionamiento de algunos programas que utilizan AVX

En el kernel de Linux desde la versión 5.2, проявляется Un error que hace que se viole el contenido del registro AVX al regresar de un controlador de señal que se maneja cuando se lanza una excepción (fallo de página). El problema ocurre cuando se ejecutan programas multiproceso ("-pthread") que involucran cálculos con el registro AVX, si el kernel está integrado en GCC 9 (si está integrado en versiones anteriores de GCC, el error no aparece, ya que GCC 9 almacena en caché la dirección de la variable local del hilo en el registro, y las versiones anteriores de GCC la cargan cada vez).

El problema hace que el programa finalice prematuramente con un error de corrupción de memoria. La manifestación del error más notable y frecuentemente observada. acero accidentes aplicaciones, escrito en idioma Go. Debido al problema observado, los programas Go finalizan prematuramente, generalmente con los errores "error de tiempo de ejecución: dirección de memoria no válida o desreferencia de puntero nulo", "tiempo de ejecución: PC de retorno inesperado" y "violación de segmentación". El error en el kernel sigue sin solucionarse. Se está considerando la posibilidad agregar cambios al tiempo de ejecución del lenguaje Go para solucionar selectivamente errores en kernels de Linux problemáticos, a costa de una sobrecarga adicional.

Fuente: opennet.ru

Añadir un comentario