Red Hat-technici werken aan een oplossing voor het feit dat Indirect Branch Restricted Speculation (IBRS) te duur is om Spectre V2 en Retbleed op oudere Intel Xeon Scalable-processors te beperken. Er is een nieuwe patch uitgebracht om IBRS uit te schakelen wanneer het inactief is en werkt goed, in ieder geval voor Red Hat Enterprise Linux 9, terwijl het nog niet duidelijk is of het zal worden geaccepteerd in de stroomopwaartse kernel.

De patch van Waiman Long van Red Hat verklaart de problemen waar ze nog steeds mee te maken hebben rond Intel IBRS voor het omgaan met Spectre en Retbleed:

Voor Intel-processors die IBRS moeten inschakelen om zich te beschermen tegen Spectre v2 en Retbleed, de IBRS-bit in de SPEC_CTRL MSR beïnvloedt de prestaties van de hele kern, zelfs als slechts één thread deze aanzet wanneer deze in de kernel wordt uitgevoerd. Voor toepassingen met veel gebruikersruimte zou de prestatie-impact van het af en toe inschakelen van IBRS tijdens syscalls niet significant moeten zijn. Helaas is dat niet het geval wanneer de sibling-thread inactief is in de kernel. In dat geval kan de prestatie-impact aanzienlijk zijn.

Als DPDK draait op een geïsoleerde CPU-thread, worden netwerkpakketten in de gebruikersruimte verwerkt terwijl de zusterthread inactief is. De prestaties van de bezette DPDK-thread met IBRS aan en uit in de zuster-inactieve thread zijn:

IBRS on IBRS off
—————
pakketten/seconde: 7.8M 10.4M
gem. tsc cycli/pakket: 282.26 209.86

Dit is een prestatieverlies van 25%. Het testsysteem is een Intel Xeon 4114 CPU @ 2.20GHz.

Deze serie patches schakelt IBRS uit in verschillende inactieve modus om de prestatie-impact van de inactieve thread op zijn drukke broer of zus te elimineren.

Au, een hit van 25% op de Xeon Scalable Skylake voor de open-source Data Plane Development Kit (DPDK).
Er is deze kernel-thread waar de patch voor het uitschakelen van IBRS wanneer inactiviteit wordt gefloatt. Prominente Intel Linux-engineer Peter Zijlstra heeft echter een andere patch voorgesteld die momenteel niet is teruggezet naar RHEL9. Bovendien de mogelijkheid om met Call Depth Stuff/Tracking te gaan in plaats van IBRS. In mijn tests biedt de Call Depth Tracking in mainline Linux 6.2+ inderdaad aan om wat verloren prestaties te helpen herstellen op CPU’s uit het Intel Skylake-tijdperk die anders afhankelijk zijn van IBRS. Dus we zullen zien waar de stroomopwaartse kernelactiviteit naartoe gaat of dat Red Hat deze patch voorlopig alleen als onderdeel van hun RHEL9-kernel meedraagt, totdat er nieuwe opties worden gebackporteerd. In ieder geval blijft deze nieuwste discussie over de kernel-mailinglijst de pijnstillers laten zien die nog steeds worden ervaren door zakelijke Linux-gebruikers medio 2023 op oudere platforms.

Categories: IT Info