OpenBSD schakelt HyperThreading bij Intel-processors standaard uit vanwege de beveiligingsrisico's die hiermee gemoeid zouden zijn. Op termijn schrapt het besturingssysteem simultaneous multithreading bij alle processors.
Het ontwikkelteam denkt dat multithreading misbruik van meerdere Spectre-achtige bugs mogelijk maakt. "Implementaties voor simultaneous multithreading delen de translation look-aside-buffer en de L1-cache tussen threads. Dit kan cache-timingaanvallen vereenvoudigen", schrijft Mark Kettenis van OpenBSD.
Kettenis verwijst naar de verschillende varianten van Spectre-kwetsbaarheden die sinds eind vorig jaar aan het licht zijn gekomen. De mogelijkheid bestaat dat meer kwetsbaarheden aan het licht komen waarbij multithreading een rol speelt, als onderzoekers nieuwe sidechannelaanvallen vinden om de eigenschap uit te buiten dat meerdere stukken code op meerdere logische cores maar op een enkele fysieke core draaien en interactie met elkaar hebben.
Het beste zou volgens Kettenis zijn om geen verschillende beveiligingsdomeinen op verschillende threads op dezelfde core te draaien, maar om de scheduler van OpenBSD hiervoor aan te passen zou veel werk betekenen. Daarom is ervoor gekozen de HyperThreading standaard helemaal uit te schakelen. Gebruikers hebben de keuze deze instelling aan te passen via de hw.smt-sysctl-instelling.
Voorlopig is het uitschakelen dus alleen bij gebruik van Intel-processors in combinatie met de 64bit-versie van OpenBSD het geval. In de toekomst moet ook de multithreading bij processors van andere fabrikanten uitgezet worden. Kettenis wijst erop dat multithreading niet altijd snellere prestaties biedt, maar dat dit afhangt van de werklast. Die moet ervoor geoptimaliseerd zijn.