• IT-Karriere:
  • Services:

I/O und Spectre v2 machen Probleme

Wie erwähnt hängen die Leistungseinbußen durch PTI von einer Vielzahl von Gegebenheiten ab, die vor allem von Anwendungsentwicklern durch eine optimierte Nutzung bestimmter Kernel-Funktionen zudem in vernachlässigbarem oder zumindest geringem Umfang gehalten werden können.

Stellenmarkt
  1. AKDB, verschiedene Standorte
  2. ING Deutschland, Frankfurt

Trotzdem benutzen insbesondere Datenbanken, Proxy-Server oder unter Umständen auch Storage- und Logging-Systeme tendenziell eher viele Systemaufrufe, da diese besonders oft mit vergleichsweise kleinen Dateien I/O-Operationen ausführen.

Aus Sicht der Linux-Entwickler problematisch ist hier etwa der vielfach genutzte und auch in einigen Medienberichten erwähnten Benchmark Flexible I/O (FIO), der einfach nur Daten hin- und herschiebt, ohne diese weiterzuverarbeiten, dabei unter Umständen aber unnötig viele Systemaufrufe durchführt, wie die Linux-Entwickler auf dem LSFMM 2018 vermuten.

Kernel-Barrieren gegen Spectre v2

Interessant an den Tests mit FIO ist jedoch die Erkenntnis, dass die Anzahl der I/O-Operation pro Sekunde bei aktivierten PTI-Patches nicht abfällt, sofern dem Programm genügend Prozessorzeit zur Verfügung steht. Zu den mit FIO bei Intel durchgeführten Tests, von denen The Next Platform berichtet, heißt es bei dem Magazin: "Da bei diesem Speicher-Benchmark die CPUs zu 100 Prozent ausgelastet sind, gibt es nur eine Richtung, in die sich die Leistung entwickeln kann, und das ist nicht aufwärts".

Besonders kritisch wird dieser einzig mögliche Abwärtstrend zusätzlich durch den Schutz vor der Spectre-v2-Lücke (Branch Target Injection). Über diese lässt sich die CPU dazu bewegen, das Ziel einer indirekten Codeausführung zu verfälschen, um so Zugriff auf privilegierten Speicher zu erhalten.

Um das zu verhindern, kommt neben zwei weiteren Funktionen vor allem die Indirect Branch Restricted Speculation (IBRS) zum Einsatz. Diese wird gesetzt, sobald die CPU in einen privilegierten Modus fällt. In diesem Fall sorgt der Code dafür, dass die CPU die in einem weniger privilegierten Modus erlernten Ziele für den Codezweig (Branch Targets) vergisst.

Laut dem Magazin Ars Technica schätzt Intel, dass Verzweigungen mit einer Genauigkeit in den oberen 90 Prozent richtig prognostiziert werden. Mit IBRS fällt diese CPU-Optimierung weg und kann dementsprechend nicht genutzt werden, was offensichtlich zu massiven Leistungseinbußen führen muss.

Retpoline als Optimierung

In den erwähnten FIO-Tests von Intel ist der Leistungsverlust durch IBRS mit 64 KByte Blockgröße bei einer typischen Arbeitslast im Rechenzentrum auf Skylake-CPUs jedoch quasi nicht vorhanden. Das wird im Prinzip auch von den Linux-Entwicklern bestätigt. Auf CPUs der Broadwell- oder Haswell-Generation liegt der Leistungsverlust hier jedoch bei rund 30 Prozent.

Diese Unterschiede sind auf Architekturverbesserungen der Skylake-Architektur zurückzuführen. Die Linux-Entwickler nutzen deshalb auch standardmäßig die per Microcode-Update umgesetzte IBRS-Funktion auf Skylake.

Für ältere CPU-Generationen ist der Leistungsverlust jedoch so groß, dass Linux gegen Spectre v2 auf die sogenannten Retpoline (Return Trampoline) setzt. Diese Lösung erlaubt es, indirekte Branches von der spekulativen Ausführung auszunehmen, was unter anderem durch Änderungen am Compiler erreicht wird.

Mit den Retpolines fällt der Leistungsverlust von den genannten 30 Prozent für Broadwell und Haswell auf lediglich 1 bis 2 Prozent. Das ist auch der Grund, weshalb im Linux-Kernel für die älteren CPU-Generationen von Intel konsequent auf Retpoline gesetzt wird.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Verbesserungen in Kernel und AnwendungenSchadensbegrenzung erreicht 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7.  


Anzeige
Hardware-Angebote
  1. täglich neue Deals bei Alternate.de
  2. (reduzierte Überstände, Restposten & Co.)

n0x30n 04. Mai 2018

Ein Block aus 8 reservierten CVEs ist nicht das Gleiche wie 8 Sicherheitslücken. Abwarten...

DeathMD 04. Mai 2018

Kann mir nicht vorstellen, dass der Ryzen 2700x weniger IPC als deine CPU hat.

drvsouth 04. Mai 2018

Bei meinem Haswell i5-4200U merke ich eigentlich nichts beim täglichen Benutzen. Wenn...

Sybok 04. Mai 2018

Bei top ist das tatsächlich ganz genau so.

bioharz 04. Mai 2018

Darf ich fragen wieso ihr das nicht nützt? BDW: Die Lücke lässt sich auch über JS / Web...


Folgen Sie uns
       


Galaxy Buds Live im Test: So hat Samsung gegen Apples Airpods Pro keine Chance
Galaxy Buds Live im Test
So hat Samsung gegen Apples Airpods Pro keine Chance

Bluetooth-Hörstöpsel in Bohnenform klingen innovativ und wir waren auf die Galaxy Buds Live gespannt. Die Enttäuschung im Test war jedoch groß.
Ein Test von Ingo Pakalski

  1. Freebuds Pro Huawei bringt eine Fast-Kopie der Airpods Pro
  2. Airpods Studio Patentanträge bestätigen Apples Arbeit an ANC-Kopfhörer
  3. Bluetooth-Hörstöpsel mit ANC JBL tritt doppelt gegen Airpods Pro an

Software-Entwicklung: Wenn alle aneinander vorbeireden
Software-Entwicklung
Wenn alle aneinander vorbeireden

Wenn große Software-Projekte nerven oder sogar scheitern, liegt das oft daran, dass Entwickler und Fachabteilung nicht die gleiche Sprache sprechen.
Ein Erfahrungsbericht von Boris Mayer

  1. Aus Kostengründen Tschechien schafft alle Telefonzellen ab
  2. Telekom Bis Jahresende verschwinden ISDN und analoges Festnetz
  3. Die persönliche Rufnummer Besitzer von 0700 wollen Sonderrufnummer-Status loswerden

Immortals Fenyx Rising angespielt: Göttliches Gaga-Gegenstück zu Assassin's Creed
Immortals Fenyx Rising angespielt
Göttliches Gaga-Gegenstück zu Assassin's Creed

Abenteuer im antiken Griechenland mal anders! Golem.de hat das für Dezember 2020 geplante Immortals ausprobiert und zeigt Gameplay im Video.
Von Peter Steinlechner


      •  /