FMA3-Instruktion: Windows-SMT-Bug lässt Ryzen-Systeme abstürzen

Hochoptimierter Code mit der FMA3-Anweisung führt unter Windows 10 zum Absturz von Ryzen-Systemen, wenn diese SMT nutzen - unabhängig vom Compiler. Unter Linux tritt das Problem nicht auf und selbst Wine führt den Code fehlerfrei aus.

Artikel von veröffentlicht am
Windows-Systeme mit Ryzen können reproduzierbar zum Absturz gebracht werden.
Windows-Systeme mit Ryzen können reproduzierbar zum Absturz gebracht werden. (Bild: Martin Wolf/Golem.de)

Ein Fehler, der von hochoptimiertem Code verursacht wird, kann Windows-10-Systeme mit den neuen Ryzen-CPUs vom AMD reproduzierbar zum Absturz bringen. Das berichtet der Entwickler Alexander Yee, dem dies bei Tests seines Programms Flops aufgefallen ist. Die Anwendung bewertet die Rechenleistung von Gleitkommaoperationen einer CPU und nutzt dafür spezielle x86-Befehlssatzerweiterungen wie SSE oder FMA3 (Fused Multiply-Add 3). Bei dem Test von FMA3 mit 128 Bit Breite stürzt jedoch das gesamte System ab.

Stellenmarkt
  1. IT-Systemingenieur (m/w/d) Active Directory / Exchange
    Helios IT Service GmbH, Berlin
  2. Software Ingenieur*in (d/m/w) Equipment Integration
    OSRAM Opto Semiconductors Gesellschaft mit beschränkter Haftung, Regensburg
Detailsuche

Yee hat in dem Hwbot-Forum dazu aufgerufen, seine Ergebnisse zu verifizieren. Tatsächlich haben sich einige Nutzer mit unterschiedlichen Hardware-Konfigurationen gemeldet und bestätigen den Absturz von Windows bei der Verwendung von Ryzen-CPUs. Auch wir konnten den Absturz mit einem Ryzen 7 1800X auf dem Mainboard MSI X370 XPower Gaming Titanium nachstellen und dabei die Fehlerursache zumindest etwas eingrenzen.

Windows-Fehler bei der Verwendung von SMT

Der Absturz tritt bei uns sowohl mit dem von Yee selbst bereitgestellten Binärdateien auf als auch mit der von uns kompilierten Anwendung. Der verwendete Compiler und die Toolchain scheinen darüberhinaus hier nicht das eigentliche Problem zu sein. Denn wir können ebenfalls reproduzierbar einen Absturz mit Binärdateien verursachen, die wir unter Linux mit MinGW für Windows crosskompiliert haben.

Interessanterweise tritt der Fehler bei uns jedoch nicht auf, wenn das Simultaneous Multithreading (SMT) der CPU abgestellt wird. Das unterstützen jedoch nicht alle Mainboards, weshalb Yee dieses Verhalten selbst nicht nachstellen kann. Allerdings bestätigt auch ein Nutzer des Hwbot-Forums, dass der Absturz bei abgeschaltetem SMT nicht auftritt.

Golem Akademie
  1. CEH Certified Ethical Hacker v11: virtueller Fünf-Tage-Workshop
    10.–14. Januar 2022, Virtuell
  2. Cloud Computing mit Amazon Web Services (AWS): virtueller Drei-Tage-Workshop
    14.–16. Februar 2022, virtuell
Weitere IT-Trainings

Der Fehler ist wohl außerdem auf Windows beschränkt. Unter Linux verursacht die Anwendung unabhängig von der SMT-Nutzung bei uns keine Abstürze. Yee und andere Nutzer bestätigen ebenso, dass Linux nicht betroffen ist. Ebenso fehlerfrei ist die Ausführung der Windows-Binärdateien unter Linux mit Hilfe des Windows-API-Nachbaus von Wine.

Möglicherweise Workaround dank Microcode-Update

Dass der Absturz wie beschrieben nur unter bestimmten Umständen bei der Verwendung von Windows 10 auftritt, deutet daraufhin, dass es sich nicht um einen Fehler der Hardware selbst handelt, sondern eben um einen sehr spezifischen Fehler in Verbindung mit der SMT-Verarbeitung von Windows.

Laut dem Chief Operating Officer von Hwbot, Pieter-Jan Plaisier, der gute Kontakte in der Hardware-Industrie hat, werde der Fehler künftig durch ein Agesa-Microcode-Update von AMD behoben. Sollte dies geschehen, setzt AMD dabei wohl lediglich auf einen Workaround, der eventuell das Abarbeiten der FMA3-Instruktionen anpasst. Eine Stellungnahme von AMD oder Microsoft zu dem Problem gibt es noch nicht.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


triri 27. Jun 2017

Kann ich ehrlich gesagt nicht wirklich nachvollziehen, dass so viele immer solche...

HubertHans 20. Mär 2017

Wie schon jemand geschrieben hat: Compiler.

das sushi 17. Mär 2017

MS muss zu FMA3 gar nix umsetzen, das ist ein Assemblerbefehl zusätzlich, müssen die FPU...

David64Bit 17. Mär 2017

Der Bug wurde schon behoben. Die Mainboardhersteller haben sich allerdings völlig...

tbxi 17. Mär 2017

Das wird in der Umgangssprache natürlich abgekürzt, so wird aus mingw-w64 wieder "mingw".



Aktuell auf der Startseite von Golem.de
CoreELEC/LibreELEC
Smart-TV mal anders

Eine TV-Box Marke Eigenbau bringt Spaß und Gewissheit über unsere Daten. Die Linux-Distributionen CoreELEC und LibreELEC eignen sich da besonders.
Eine Anleitung von Sebastian Hammer

CoreELEC/LibreELEC: Smart-TV mal anders
Artikel
  1. Softwarepatent: Uraltpatent könnte Microsoft Millionen kosten
    Softwarepatent
    Uraltpatent könnte Microsoft Millionen kosten

    Microsoft hat eine Klage um ein Software-Patent vor dem BGH verloren. Das Patent beschreibt Grundlagentechnik und könnte zahlreiche weitere Cloud-Anbieter betreffen.
    Ein Bericht von Stefan Krempl

  2. Amazon: Fire TV Stick 4K Max erhält erweiterte Heimkinofunktion
    Amazon
    Fire TV Stick 4K Max erhält erweiterte Heimkinofunktion

    Mit einem geplanten Update kann der Fire TV Stick 4K Max den Klang anderer Zuspielgeräte auf Echo-Lautsprechern ausgeben.

  3. Krypto: Angeblicher Nakamoto darf 1,1 Millionen Bitcoin behalten
    Krypto
    Angeblicher Nakamoto darf 1,1 Millionen Bitcoin behalten

    Ein Gericht hat entschieden, dass Craig Wright der Familie seines Geschäftspartners keine Bitcoins schuldet - kommt jetzt der Beweis, dass er Satoshi Nakamoto ist?

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Kingston PCIe-SSD 1TB 69,90€ & 2TB 174,90€ • Samsung Smartphones & Watches günstiger • Saturn-Advent: Xiaomi Redmi Note 9 Pro 128GB 199€ • Alternate (u. a. Razer Opus Gaming-Headset 69,99€) • Release heute: Halo Infinite 68,99€ • MM-Aktion: 3 Spiele kaufen, nur 2 bezahlen [Werbung]
    •  /