Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
faq entry for SMT?
To:
tech <tech@openbsd.org>
Date:
Fri, 22 Mar 2024 12:46:09 +0000

Download raw body.

Thread
  • Stuart Henderson:

    faq entry for SMT?

I'm not sure why, but this question seems to come up a lot in various
places (certainly more "frequently asked" than S/Key or NIS) so it seems
worth adding something about it to the faq.

does the wording make sense? any other comments?

Index: faq10.html
===================================================================
RCS file: /cvs/www/faq/faq10.html,v
diff -u -p -r1.300 faq10.html
--- faq10.html	10 Apr 2023 02:55:09 -0000	1.300
+++ faq10.html	22 Mar 2024 11:45:32 -0000
@@ -30,6 +30,7 @@ FAQ - System Management
 <li><a href="#OpenNTPD"         >Clock Syncing</a>
 <li><a href="#TimeZone"         >Time Zones</a>
 <li><a href="#locales"          >Character Sets and Localization</a>
+<li><a href="#SMT"              >Symmetric Multithreading, or "Why are only half of my CPUs used?"</a>
 <li><a href="#SKey"             >Using S/Key</a>
 <li><a href="#Dir"              >Directory Services</a>
 <ul>
@@ -349,6 +350,27 @@ Some ports may respect other <code>LC_*<
 but using them or setting <code>LC_CTYPE</code> to any value other than
 <code>C</code>, <code>POSIX</code> or <code>en_US.UTF-8</code>
 is not recommended.
+
+<h2 id="SMT">Symmetric Multithreading, or "Why are only half of my CPUs used?"</h2>
+
+Some CPUs use Symmetric Multithreading (SMT, or "hyperthreading" as
+named by Intel).
+In this case, "virtual" CPU cores are shown in various system tools
+which do not have full CPU resources but are there to allow sharing part
+of a single core's resources with more than one concurrent process.
+This feature can improve performance for some workloads but reduce it
+for others.
+
+<p>
+SMT has been involved in various CPU vulnerabilities, in particular
+relating to speculative execution. This can result in processes learning
+information about other processes which they should not have access to.
+To mitigate this, OpenBSD disables running code on detected SMT "virtual"
+cores by default.
+
+<p>
+They can be reenabled by setting the sysctl <code>hw.smt</code> to
+<code>1</code>, however doing so is generally not recommended.
 
 <h2 id="SKey">Using S/Key</h2>