Live data from Hacker News

The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

phoronix.com

21–30 of 33 posts

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#21
post #16

What is the best way to disable the mitigations if you don't care about security but care about performance?

You can set kernel boot parameters to disable the mitigations on a patched kernel.

https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAn...

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#22

AMD seems to fare better with the patches. Its good for AMD. I remember when AMD64 came out and AMD had a lead on intel. Its good to have have some competition.

Except Intel + mitigations still much faster on most workloads than AMD without mitigations.

Benchmarks please with current generation processors and a chips from the same price point.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#23
post #17

Earlier quoted context omitted.

Except Intel + mitigations still much faster on most workloads than AMD without mitigations.

This isn't Bulldozer anymore. Intel has faster single thread performance on some workloads, but the difference for "most workloads" is modest and for the same money AMD is offering more cores, more memory channels and more I/O. For threaded (i.e. server) workloads it has been a solid choice even before these mitigations started eating into Intel's single thread performance lead.

A 2-socket AMD setup has the same NUMA topology as an 8-socket Intel machine, and because of that the performance is terrible on many workloads.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#24
post #18
post #16

What is the best way to disable the mitigations if you don't care about security but care about performance?

Don't update your OS/Microcode.

> Don't update your OS

Sounds like a good way to remain insecure to all other types of vulnerabilities.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#25
post #17

Earlier quoted context omitted.

This isn't Bulldozer anymore. Intel has faster single thread performance on some workloads, but the difference for "most workloads" is modest and for the same money AMD is offering more cores, more memory channels and more I/O. For threaded (i.e. server) workloads it has been a solid choice even before these mitigations started eating into Intel's single thread performance lead.

A 2-socket AMD setup has the same NUMA topology as an 8-socket Intel machine, and because of that the performance is terrible on many workloads.

There are a lot of things that have to go the wrong way at once to get to the point where that really matters.

The first is that your working set won't fit in the processor caches and has regular cache misses into main memory -- but most of the Epyc line has 64MB of L3 cache.

Then the access pattern has to be random rather than sequential, which knocks out a major class of the applications satisfying the first criteria (all the ones that process big files in sequential order).

Then the operating system scheduler has to fail to schedule the process on a core in the same node as its data, most commonly because you have a process with more active threads than there are threads per node.

What you're left with is, basically, large databases. But large databases also benefit significantly from more cores, memory channels and I/O. Which factor dominates is going to depend on specific usage, e.g. a database with randomly accessed individual bits will be more sensitive to latency whereas one containing pictures or other medium-large blocks of data will be more sensitive to memory bandwidth.

You can certainly find a worst-case usage pattern for one or the other but in general they're going to counterbalance each other.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#26
post #18

Earlier quoted context omitted.

Don't update your OS/Microcode.

> Don't update your OS Sounds like a good way to remain insecure to all other types of vulnerabilities.

It is, but if you care only about performance, and not security, you don't care.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#27
post #25

Earlier quoted context omitted.

A 2-socket AMD setup has the same NUMA topology as an 8-socket Intel machine, and because of that the performance is terrible on many workloads.

There are a lot of things that have to go the wrong way at once to get to the point where that really matters. The first is that your working set won't fit in the processor caches and has regular cache misses into main memory -- but most of the Epyc line has 64MB of L3 cache. Then the access pattern has to be random rather than sequential, which knocks out a major class of the applications satisfying the first criter…

I don't think you really understand the architecture of the machine. EPYC looks on paper like it has a large L3 cache, but it consists of separate L3 caches per "core complex" of which there are two per die and four dies per package. So what you've actually got is a bunch of redundant 8MB caches, which is not the same thing. Because of the baroque topology, especially when you have two sockets, access to main memory varies between almost-as-fast-as-xeon to way-way-slower-than-xeon. Combined with the small caches it's a total disaster.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#28

Regardless of whether the impact is big or small, you are stuck with it if you need the security. But 5-10% performance impact is completely unacceptable for the cases where you don't care about security (much) such as gaming. Given how hard it is to keep my windows machine from eating my CPU anyway with updates etc while I'm gaming: should people start booting to a special partition with a legacy OS without these mi…

Games are rarely bottlenecked by CPU and they don't do much io, so they are much less affected by the mitigations than server loads.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#29
post #25

Earlier quoted context omitted.

There are a lot of things that have to go the wrong way at once to get to the point where that really matters. The first is that your working set won't fit in the processor caches and has regular cache misses into main memory -- but most of the Epyc line has 64MB of L3 cache. Then the access pattern has to be random rather than sequential, which knocks out a major class of the applications satisfying the first criter…

I don't think you really understand the architecture of the machine. EPYC looks on paper like it has a large L3 cache, but it consists of separate L3 caches per "core complex" of which there are two per die and four dies per package. So what you've actually got is a bunch of redundant 8MB caches, which is not the same thing. Because of the baroque topology, especially when you have two sockets, access to main memory…

The amount of L3 per thread is still 64MB/#threads. Where the difference you're describing most matters is for single-threaded code, where in theory the one thread could otherwise have the entire 64MB. But that isn't the circumstance with the NUMA latency anyway. If there is only one thread the OS can schedule it on the same node as its data.

Most working sets fit in even 8MB (or less) -- the reason for 64MB is to provide for multiple threads. In which case if one thread isn't using its proportionate share there are seven others that can use it. Sharing with sixty-three instead would be "better" but at some point it's diminishing returns.

Re: The Performance Cost Of Spectre/Meltdown/Foreshadow Mitigations On Linux

#30

Maybe we should just give up wanting to run untrusted code safely as a failed experiment. For example 90% of the JavaScript I run is for advertizing purposes. The pragmatic solution would be that either everybody moves to self-hosting ads, or that the neccessary telemetry for third parties is moved into a browser function. Web pages (that are not applications) should not need a "turing complete" language (in the vulg…

> desktop apps are not sandboxed. It can just open the memory of other apps

Care to elaborate? What about process isolation?

Post reply on HN