Un bug a été identifié dans le noyau Linux qui provoque un dysfonctionnement de certains programmes utilisant AVX

Dans le noyau Linux depuis la version 5.2, apparaît Erreur qui entraîne la violation du contenu du registre AVX lors du retour d'un gestionnaire de signal géré lorsqu'une exception est levée (page-fault). Le problème se produit lors de l'exécution de programmes multithread ("-pthread") qui impliquent des calculs avec le registre AVX, si le noyau est construit dans GCC 9 (s'il est intégré dans des versions antérieures de GCC, l'erreur n'apparaît pas, car GCC 9 met en cache l'adresse de la variable locale du thread dans le registre, et les versions antérieures de GCC la chargent à chaque fois).

Le problème entraîne la fin prématurée du programme avec une erreur de corruption de mémoire. La manifestation la plus visible et la plus fréquemment observée de l'erreur acier crash applications, écrit en langage Go. En raison du problème constaté, les programmes Go se terminent prématurément, généralement avec les erreurs « erreur d'exécution : adresse mémoire invalide ou déréférencement de pointeur nul », « exécution : retour PC inattendu » et « violation de segmentation ». Le bug dans le noyau n'est toujours pas corrigé. La possibilité est à l'étude ajout de modifications au runtime du langage Go pour contourner sélectivement les erreurs sur les noyaux Linux problématiques, au prix d'une surcharge supplémentaire.

Source: opennet.ru

Ajouter un commentaire