Google Publishes Latest Linux Patches So Only Trusted Tasks Share a Core
phoronix.com
phoronix.com
Is there any information on the performance impact of this change? The article says they've reduced the impact and gives a single example but I'd be interested to see a proper benchmark of a system with these patches installed.
I can imagine most of a powerful core's performance going unused if the operating system isn't doing anything special and a multithreaded workload is trying to get a lot of work done. The same can likely be true for systems still rocking a dual core design, where "one core for important stuff and one for applications" can be quite taxing on system responsiveness.
CPU pinning means the pinned process always runs on the specified cores. If you instead group processes into trust domains, workloads can still be scheduled on arbitrary cores, but the scheduler can use the grouping information to arrange things such that it can skip the side-channel mitigations.
* Edited for clarification
There was some stuff to improve this - https://lwn.net/Articles/816298/ - but it wasn't merged into mainline.
https://lore.kernel.org/lkml/20201117232003.3580179-1-joel@j...
Now it's carte-blanche to have core financial systems on Amazon, running alongside EC2 instances purchased with stolen credit cards by folks in non-extradition countries.
In other words: any kind of "cloud" thing, or any hosted computations are at inherent risk of abuse from ISA level attacks.
https://www.mail-archive.com/source-changes@openbsd.org/msg9...
The vulnerabilities (MDS etc) were published in early 2019. There were some mitigations, in both kernels and browsers, but they were and are not 100%, the only 100% mitigation is still to disable SMT. Do you really want to do that? Most people it seems aren't willing to give up SMT.
This patchset for Linux was originally proposed over 20 months ago:
https://lwn.net/Articles/780703/
After refining and optimizing this patch set for quite a while, it's just about as fast as ... just disabling SMT completely (which is a lot simpler). The complexity this adds to the scheduler costs that much.
People/companies really love the _idea_ of getting _all_ the performance of SMT and _all_ the security of mitigations, and don't care as much that you actually still can't have both, so this will be merged eventually.
The documentation for this patchset seems to say that threads running in the same address space will be allowed to share core resources as a default, even when core scheduling is enabled - which seems sensible. A separate mechanism is provided to alter this behavior.
Now Purism has to reinvent a phone from scratch with automobile spare part (I.MX processors) and Pine64 have no choice but to use old & crappy SOCs.
THAT is the impact Google has on FOSS.
Surely that specific contribution is welcomed, but overall I don't think those company ever deserve any "thanks" from anyone given the harm they are doing to FLOSS, Competition, Privacy, Standards, and Society in general.
Android has been Linux, and it's even more Linux now than before.
Even their new OS Fuchsia is being developed out in the open.
Companies, who make up a sizable portion of OSS commits, do it because their interests align. Why is this different, and suspicious or malicious?
Sounds perfect.
https://www.extremetech.com/computing/276138-is-hyper-thread...
With the "kernel protection" aspect enabled, the performance is the same as just disabling SMT. And this is their hand-picked benchmark.
Changes like this were first proposed a hear and half ago I think, or longer, and rejected because the performance cost of making the scheduler consider this constraint cost more performance than just disabling SMT, so it wasn't worth the implementation complexity cost. But it's true that companies and customers still _want_ it, they want to get all their cores/threads for performance, and they want all the security... they just want to know they got those things, even if they really didn't, because who can really notice...
It's about HyperThreading/SMT, a feature that allows multiple programs to run in the same instruction cycle by using idle execution units within a shared core.
Sometimes you have to use proprietary software for work. Or maybe you just really want to play a game.
Amended. This seems to hold true in the long term.
There's a spectrum of risk people are willing to take and this provides another way to share a host but remain a little more isolated.