Google arbeitet hart daran, Softwarefehler in wichtigen Open-Source-Projekten proaktiv zu erkennen. Aber jetzt entwickeln sie angeblich ein SiliFuzz-System, das Defekte in Zentraleinheiten erkennt.
Das Funktionsprinzip von SiliFuzz besteht darin, den Betrieb des Prozessors zu analysieren, indem vorbereitete Testdaten ausgeführt werden, die mit Emulatoren und Disassemblern gesammelt wurden. Dies ist eine der Arten von Fuzzing - der Prozessor wird mit "zufälligen" Berechnungen belastet, deren Ergebnis am Ausgang überprüft wird. Bei einer Abweichung gilt der Prozessor als defekt.
Das System wurde entwickelt, um vor allem elektrische Defekte von Chips zu erkennen, die während der Produktion, Installation, während des Betriebs usw. Auf sie wird besonderes Augenmerk gelegt und nicht auf logische Fehler in den CPUs selbst. Gleichzeitig verwenden die Tests selbst keine Low-Level-Debugging-Mechanismen, wodurch sie auf "Kampf"-Systemen verwendet werden können.
Tatsächlich besteht die Aufgabe der Entwickler darin, ein System zu erstellen, das jeden Kern auf jedem Google-Server regelmäßig testen kann, ohne die Leistung zu beeinträchtigen. In seiner aktuellen Form wählt SiliFuzz den Moment aus, in dem die Belastung einer bestimmten Maschine nicht so groß ist, und testet sequentiell Gruppen von vier Threads (2 Kerne mit SMT) für maximal zwei Minuten. Bisher orientieren sich Entwickler an x86-64-Prozessoren, die von Google selbst massiv genutzt werden.
Das Hauptziel des Projekts ist es, die Erkennung versteckter Fehler zu automatisieren, die zu falschen Berechnungen führen und die viel gefährlicher sind als normale Ausfälle und Abstürze, da nur kleine Abweichungen im Betrieb des Chips zur Anhäufung einer Reihe von Fehlern führen. So stellte sich beispielsweise heraus, dass einige CPUs manchmal falsche Ergebnisse des F2XM1 (x2-1)-Aufrufs zurückgaben, während andere periodisch FCOS-Berechnungen lieferten, die von den richtigen abweichen. Im letzteren Fall beträgt die Differenz weniger als 0,0000003%, dies kann jedoch für Probleme ausreichen.
Wie bereits erwähnt, werden etwa 45% der mit SiliFuzz gefundenen Fehler nicht von anderen Tools verfolgt. Zukünftig wollen die Entwickler SiliFuzz skalieren, die Geschwindigkeit des Programms erhöhen und generell die Arbeitsqualität verbessern.
2021-10-19 15:51:56
Autor: Vitalii Babkin