CPU-Bug: Wie der Albtraum-Bug in Skylake gefunden wurde

Ein Hardware-Bug ist auch nur so etwas wie ein Software-Bug, hat sich das Team gedacht, das den sogenannten Albtraum-Bug in Skylake-CPUs gefunden hat. Am Ende blieben wenige Zeilen Assembler und das Warten auf den Bugfix von Intel.

Artikel veröffentlicht am ,
Verschiedene CPUs von Intel hatten ein Bug im Microcode.
Verschiedene CPUs von Intel hatten ein Bug im Microcode. (Bild: Martin Wolf/Golem.de)

In einem sehr ausführlichen Blogeintrag beschreibt der Entwickler Joris Giovannangeli, wie der Fehler in dem Microcode für Intels Skylake-CPUs gefunden wurde. Das Debian-Team hatte diesen als Albtraum bezeichnet. Dabei hatte es bei dem Unternehmen Ahrefs viel Hilfe von verschiedenen anderen Entwicklern und vor allem von der Ocaml-Community - und zunächst hatten sie auch eine "verrückte Idee".

Speicherfehler von Hardware ausgelöst

Stellenmarkt
  1. Datenschutzkoordinator (m/w/d)
    S-Kreditpartner GmbH, Berlin
  2. Senior-IT-Architekt Mobile-App Entwicklung (m/w/d)
    BARMER, Schwäbisch Gmünd, Wuppertal
Detailsuche

Demnach konnte das Team den Fehler, der beim Kompilieren von Ocaml ausgelöst wurde, zuerst nur sehr schlecht reproduzieren. Nachdem der Fehler aber auch auf den neuen Produktivservern aufgetreten war, musste das Team handeln. Das augenscheinliche Problem ist ein Segfault, also ein Speicherfehler. Allerdings lag der betroffene Speicherbereich außerhalb des Adressbereiches der Anwendung, was auf Fehler im Kernel oder in der Hardware hindeutet.

Da die Verwendung von Werkzeugen wie Asan oder Valgrind, die zum Untersuchen derartiger Fehler genutzt werden, viel Leistung benötigt, zog das Team zum Testen von den Entwickler-Rechnern auf einen Server um, wo es den Fehler nicht hat reproduzieren können. Erst dann stellte das Team fest, dass nur Skylake-Systeme betroffen sind und möglicherweise die Hardware der Verursacher ist.

Entwickler Giovannangeli beschreibt das als "unübliche" Vermutung und wie erwähnt als "verrückte Idee". Gereift sei diese Überlegung wegen des Berichts von einem anderem Ocaml-Entwickler, der einen ähnlichen Fehler beschrieben hat und diesen in Zusammenhang mit dem Hyperthreading des Skylake brachte.

Fehlersuche bis zum Assemblercode

Golem Akademie
  1. Cloud Computing mit Amazon Web Services (AWS): virtueller Drei-Tage-Workshop
    14.–16. Februar 2022, virtuell
  2. Scrum Product Owner: Vorbereitung auf den PSPO I (Scrum.org): virtueller Zwei-Tage-Workshop
    3.–4. März 2022, virtuell
Weitere IT-Trainings

Zu der Zeit gab es aber weder in Intels-Errata-Liste eine Beschreibung, die auf das Problem gepasst hätte, noch ein Microcode-Update, das das Problem löst. Also versuchte das Team weiterhin, den Fehler einzugrenzen. Dafür wurde angenommen, dass der Code, der den Speicherfehler provoziert, derjenige ist, der auch in den entsprechenden Bereich schreibt und liest, in diesem Fall der Garbage Collector.

Diese Information kombiniert mit dem Wissen, dass der Fehler nur bei der Verwendung einer bestimmten Compiler-Optimierung auftritt, ermöglichte letztlich die Suche in dem betroffenen Code, so dass das Team eine spezifische Kombination von Register-Befehlen in Assemblercode als Auslöser ausmachen konnte.

Die Auflistung der Änderungen beim aktuellen Microcode-Update für Intels Skylake-CPUs zählt in einem Fall dann auch die betroffene Registersequenz auf. Nach einem Microcode-Update konnten die beteiligten Ocaml-Entwickler den Bugfix bestätigen. "Schließlich", so schreibt das Team, "fühlten sich unsere Skylake-CPUs sicher und Ocaml-Compiler war glücklich."

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


wsxedc 18. Sep 2017

Dass Intel keinen Mitbewerber mehr hat ist Quatsch. AMD ist jetzt mit Ryzen wieder sehr...

Rubbelbubbel 14. Jul 2017

...der es auch als Flachwitz in das Adventure "Simon the Sorcerer 2" geschafft hat...

Tom01 02. Jul 2017

Das ist ein mieser Programmierstil. Genau das, was Mann nicht machen sollte.

Deff-Zero 30. Jun 2017

Bei CPUs werden im Gegensatz zu Wald- und Wiesensoftware schon lange...

Schleicher 30. Jun 2017

Richtig! Jedenfalls wenn du die Version 0x48 hast. Überprüfen kannst du das mit grep -i...



Aktuell auf der Startseite von Golem.de
Giga Factory Berlin
Warum Tesla auf über eine Milliarde Euro verzichten musste

Tesla kann die Milliarde Euro Förderung für die Akkufabrik Grünheide nicht beantragen - weil es sonst zu Verzögerungen beim Einsatz neuer Technik käme.

Giga Factory Berlin: Warum Tesla auf über eine Milliarde Euro verzichten musste
Artikel
  1. iPhone lädt Airpods: Apple soll an bidirektionalem Laden arbeiten
    iPhone lädt Airpods
    Apple soll an bidirektionalem Laden arbeiten

    Apple soll an Funktionen arbeiten, mit denen sich mobile Geräte gegenseitig laden lassen. Auch aus der Distanz soll das Laden künftig möglich sein.

  2. Doppelbildschirm: Kickstarterprojekt Slide brauchte 6 Jahre bis zum Erfolg
    Doppelbildschirm
    Kickstarterprojekt Slide brauchte 6 Jahre bis zum Erfolg

    Das Kickstarter-Projekt Slidenjoy kann nach 6 Jahren seinen Doppelbildschirm Slide für Notebooks ausliefern.

  3. Black Friday 2021 - Deals am Cyber Monday bei Amazon & Co.
     
    Black Friday 2021 - Deals am Cyber Monday bei Amazon & Co.

    Nach gut drei Wochen voller Rabatte und Schnäppchen endet heute Abend mit dem Cyber Monday die Black Friday Woche.
    Ausgewählte Angebote des E-Commerce-Teams

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 • Black Friday Wochenende • WD Blue SN550 2 TB ab 149€ • LG UltraGear 34GP950G-B 999€ • SanDisk Ultra 3D 500 GB M.2 44€ • Boxsets (u. a. Game of Thrones Blu-ray 79,97€) • Samsung Galaxy S21 128GB 777€ • Premium-Laptops • Cooler Master V850 Platinum 189,90€ • Astro Gaming Headsets [Werbung]
    •  /