AMD Epyc verliert kaum Leistung durch Spectre-v2-Fix Retpoline
Nach Bekanntwerden der Prozessor-Sicherheitslücken Meltdown und Spectre wurden hektisch erste Fixes oder im Jargon “Linderungen” veröffentlicht, da insbesondere bei den Betreibern von vServern und Cloud-Servern schnell eine Lösung her musste, denn diese Systemgattung ist am stärksten bedroht davon. Das Feedback der Betreiber fiel dabei je nach Servertyp verheerend aus. Von 20 %, 30 %, 40 % Leistungsverlust war die Rede, insbesondere bei I/O‑lastigen Aufgaben.
Von Meltdown ist AMD bekanntlich nicht betroffen. Inzwischen sind zwei Monate vergangen und die Fixes sind gereift, ebenfalls die gegen die beiden Spectre-Lücken. Dabei gibt es zwei komplett unterschiedliche Arten des Herangehens: In der Linux-Welt versucht man, Spectre mit der Retpoline-Technik zu lindern, Microsoft geht mit Windows den Weg über zusätzliche Befehle, die per Microcode in den Prozessoren nachgerüstet werden müssen.
Auf Phoronix ist vor einigen Tagen ein Artikel erschienen, der die Auswirkungen der verschiedenen Fixes auf den Server-Prozessor AMD Epyc aufzeigt. Dabei wird klar, weshalb AMD zu jeder passenden Gelegenheit betont, dass man Spectre v2 gerne mit dem Linux-Ausweg Retpoline begegnen würde, ebenso unter Windows. Denn die Auswirkungen von Retpoline auf die Leistung von Epyc sind verschwindend gering. Dabei darf in Anbetracht der Benchmarks nicht übersehen werden, dass der getestete Linux-Kernel 4.16 generell etwas langsamer zu sein scheint als der ältere 4.14, vermutlich auch weil bei 4.16 die Spectre-v1-Fixes grundsätzlich aktiviert sind. Die weiteren getesteten Varianten umfassen:
For this AMD EPYC Linux kernel benchmarking the following configurations were tested:
- Linux 4.14.0 stable that doesn’t contain any Spectre V1 or V2 mitigation for the EPYC system.
- Linux 4.14.24 as the latest 4.14 stable point release at the time of testing that includes both __user pointer sanitization for Spectre Variant One and backported full AMD Retpoline protection for Spectre Variant Two.
- Linux 4.15.0 stable that contained full AMD Retpoline protection but that release hadn’t offered any Spectre V1 protection.
- Linux 4.16 Git from this week offering both user pointer sanitization and full AMD Retpoline protection.
- Linux 4.16 Git from the same build but disabling the Retpoline support via the “spectre_v2=off” kernel command-line option. This though still leaves Spectre V1 protection in place.
Einige Tage zuvor führt Phoronix einen ähnlichen Test auf einem Server mit Intel-Xeon-Gold-6138-CPUs durch. Dort trat der Leistungsverlust infolge der neuen Sicherheitsfeatures weit deutlicher zum Vorschein, natürlich auch deswegen, da auf Intel-Servern zusätzlich gegen Meltdown gepatcht werden muss.
Links zum Thema:
- Spectre Firmware-Updates: Mainboard-Hersteller warten auf AMD ()
- AMD gibt Programmierleitfaden gegen Spectre heraus ()
- Bootfehler nach Windows-Update auch bei neuen Systemen ()
- Microsoft bringt kumulatives Update KB4073290 mit AMD-Patch ()
- AMD stellt klar: MS-Patch nur gegen Spectre auf AMD-Hardware ()
- Microsoft zieht Meltdown-Patch für AMD-Systeme zurück ()
- Massive Sicherheitslücke in Intel-CPUs (Update: AMD, ARM, Bugfixes) ()