|
|
Log in / Subscribe / Register

Core scheduling lands in 5.14

Core scheduling lands in 5.14

Posted Jul 2, 2021 3:13 UTC (Fri) by willy (subscriber, #9762)
Parent article: Core scheduling lands in 5.14

> [SMT] is a hardware feature that implements two or more threads of execution in a single processor, essentially causing one CPU to look like a set of "sibling" CPUs. When one sibling is executing, the other must wait.

I suspect Our Grumpy Editor already knows this, but that's a simplified and relatively low-performing implementation (I believe Itanium Montecito did this; called SoEMT)

What most implementations do is issue micro-operations to execution units ("ports" in Intel terminology), regardless of which thread the uOps come from.

This is what the Portsmash vulnerability exploits; by detecting which ports are currently busy, a thread can deduce which operations are being executed by the other thread.


to post comments

Core scheduling lands in 5.14

Posted Jul 3, 2021 11:23 UTC (Sat) by Sesse (subscriber, #53779) [Link] (1 responses)

Yes. The best explanation I've heard came from an Intel engineer, saying something along the lines of: “Modern hardware has so many execution ports that in reality, the only way to use it fully is to write spaghetti code—code that does two unrelated things at the same time.” So HT/SMT is a way to feed the hardware with two execution streams at the same time, that don't have dependencies on each other's results.

Core scheduling lands in 5.14

Posted Jul 5, 2021 18:53 UTC (Mon) by fratti (guest, #105722) [Link]

I believe the "extreme" version of this is what modern GPUs do: fine-grained multithreading. Instead of doing things like branch prediction to keep the pipeline saturated, they simply execute a different thread's instruction with each clock cycle, such that each thread only ever has one instruction at most in the pipeline. Naturally this trades off single-threaded performance and requires keeping as many register files as one has pipeline stages, but it's a pretty elegant solution for maximising throughput if one really does have that many independent threads.


Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds