Update 2/16/23: Added information about what SMT is.
This is some exciting news for all Steam Deck users! Pierre-Loup Griffais, a developer at Valve working on the Steam Deck, posted a tweet earlier today regarding some SteamOS 3.5 news that is quite exciting to see!
Performance improvements are always welcome, of course, but the specific mention of SMT-Disabled workload improvements is particularly interesting.
SMT, or Simultaneous Multithreading, is a technique that allows multiple different threads to run concurrently on the same CPU to improve the overall performance of the CPU. Usually, each core of a CPU has a single thread it can utilize, but with SMT, they will usually have a virtual core as well, which can run its own thread. So if you ever see a CPU that says it has 8 cores and 16 threads, it is utilizing SMT.
While this could help some games, disabling SMT is notorious for helping some bigger emulators run games better, including the GameCube/Wii emulator Dolphin (Super Mario Galaxy comes to mind). The easiest way to do this currently is manually disable it using PowerTools, a Decky-loader plugin. With what Pierre is stating here, it seems possible this won’t be necessary much longer and emulation performance could be heavily improved with the new kernel.
There is no release date or window for this update, but it’s quite exciting to see this mention for what kind of performance improvements to expect for the next SteamOS update.
If you enjoyed this article, be sure to check out the rest of the content on SteamDeckHQ! We have a wide variety game reviews and news that are sure to help your gaming experience. Whether you're looking for news, tips and tutorials, game settings and reviews, or just want to stay up-to-date on the latest trends, we've got your back.
What the Valve developer is trying to say is that they are to re-enable SMT in the latest Kernel for SteamOS because the new updated kernel has addressed the performance regressions related to the invalidation of L3 cache lines when one thread on a SMT core goes to sleep. This should lead to performance gains in certain software that tend to put Threads to sleep frequently as the kernel is smarter about invalidating cache when a thread is put to sleep.
Here's the quote: "There used to be a hardcoded behavior in the Linux kernel on the AMD side, where if a core goes to sleep, it invalidates its cache, because by the time it wakes up the cache might not be valid," said Griffais. "It turns out that when you have two threads on the same core, and one thread is still working on something, and the second SMT thread goes to sleep, it throws away its cache using the same logic. So the thread that's running suddenly loses its L3 cache. In terms of CPU, that's really bad. It has to kind of refetch everything from memory—lots of latency, basically a 'bubble' in computing."
I didn't know what having SMT disabled meant and now I do, thanks to this post. Thanks!!
I am glad I can help! This should fix any big issues with emulation and possibly some other games like Sonic Generations.