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
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?
And that’s actually ignoring the much _worse_ issue, namely that the
whole hardware interface is literally mis-designed by morons.
It’s mis-designed for two major reasons:
– the “the interface implies Intel will never fix it” reason.
See the difference between IBRS_ALL and RDCL_NO. One implies Intel
will fix something. The other does not.
Do you really think that is acceptable?
– the “there is no performance indicator”.
The whole point of having cpuid and flags from the
microarchitecture is that we can use those to make decisions.
But since we already know that the IBRS overhead is <i>huge</i> 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.”