Re: Intel "shouldn't be selling CPUs?"
> I wasn't interested in single threaded performance, but performance for multiple virtual machines for testing on a desktop
Spectre has nothing to do with single-threaded vs. multi-threaded or running multiple VM's or anything like that.
The Spectre vulnerability is very simple: in the context of a branch mispredict speculative execution, the instructions aren't retired.
Mispredicted branches happen all the time, regardless of the number of threads, or whether you're running a VM or a relational database. What the software does is 100% irrelevant.
If you disable speculative execution competely, the performance hit is staggering: it's in the 30% ballpark.
Branches - conditional or unconditional - exist in every single type of software.
Without branches you can't have if/else statements, for/while loops, return from a function or a function calling another function.
OK, that's an over-simpification. You can have conditionals without branches, but that's a very complicated and inefficient way of doing conditional branches. You still end up in the same sore spot: huge performance hit.