close(999); // the syscall (it errors, but so what)https://blog.packagecloud.io/eng/2017/02/21/set-environment-...
Needs to be done on Intel CPUs older than Haswell, on those CPUs without INVPCID support.
With INVPCID you can partially invalidate TLB.
They're slower, because kernel needs to be mapped in and out of virtual address space, just like for syscalls.
If the access pattern is sufficiently local, perhaps this could be mitigated by using large (2MB) pages. A bad idea for a random access pattern, of course.
My team's RDS instances got hit hard with a 40% increase in CPU usage: https://imgur.com/a/khGxU
Still terrible though. :(
Tangent: this only seems like more proof that we should not rely on them as developers, no?
Meltdown requires running native, intrusted code, and that doesn't apply to too many servers. While it may be possible to chain this onto another exploit, once an attacker has gained remote code execution, you have much bigger problems.
While meltdown is interesting, i wouldn't enable kpti on my database servers buried behind other network infrastructure.
https://react-etc.net/entry/exploiting-speculative-execution...
To exploit meltdown you need to peek at specific places of memory (and flush the probe array from cache which might not be possible in JS easily).
I hear it's gotten a lot better since then, and the compactor doesn't freeze stuff like it used to.