Linus Torvalds wrote a scathing email to the Linux Kernel mailing list where he does not hold back regarding how he feels about the Spectre patches. Calling them "complete and utter garbage", Linus states that while Intel appears to be trying, or will be doing, the right thing regarding the Meltdown patches, he felt that Intel was passing the buck to the Linux team when it comes to resolving the Spectre issues.
You can read his whole email here, but some of the choice parts include:
That's part of the big problem here. The speculation control cpuid stuff shows that Intel actually seems to plan on doing the right thing for meltdown (the main question being _when_). Which is not a huge surprise, since it should be easy to fix, and it's a really honking big hole to drive through. Not doing the right thing for meltdown would be completely unacceptable.
So the IBRS garbage implies that Intel is _not_ planning on doing the right thing for the indirect branch speculation.
Honestly, that's completely unacceptable too.
The whole IBRS_ALL feature to me very clearly says "Intel is not serious about this, we'll have a ugly hack that will be so expensive that we don't want to enable it by default, because that would lookbad in benchmarks".
So instead they try to push the garbage down to us. And they are doing it entirely wrong, even from a technical standpoint.
I'm sure there is some lawyer there who says "we'll have to go through motions to protect against a lawsuit". But legal reasons do not make for good technology, or good patches that I should apply.
Have you _looked_ at the patches you are talking about? You should have - several of them bear your name.
The patches do things like add the garbage MSR writes to the kernel entry/exit points. That's insane. That says "we're trying to protect the kernel". We already have retpoline there, with less overhead.
So somebody isn't telling the truth here. Somebody is pushing complete garbage for unclear reasons. Sorry for having to point that out.
If this was about flushing the BTB at actual context switches between different users, I'd believe you. But that's not at all what the patches do.
As it is, the patches are COMPLETE AND UTTER GARBAGE.
They do literally insane things. They do things that do not make sense. That makes all your arguments questionable and suspicious. The patches do things that are not sane.
WHAT THE F*CK IS GOING ON?
But since we already know that the IBRS overhead is huge on existing hardware, all those hardware capability bits are just complete and utter garbage. Nobody sane will use them, since the cost is too damn high. So you end up having to look at "which CPU stepping is this" anyway.
I think we need something better than this garbage.
For those who do not understand what Linux is referring to, you can read a response from longtime Kernel developer David Woodhouse who tries to make it easier to understand for the rest of us.
While I think everyone can agree that the Linux developers are doing their best to fix a stinking hot mess that was thrust on them, with the extremely expensive overheard cost to resolving these problems, Linus feels that they should do better.