On Fri, Jan 19, 2018 at 04:15:33AM +0000, Van De Ven, Arjan wrote: > there is no such guarantee. Some of the IBRS implementations will > actually flush rather than disable, or flush parts and disable other > parts.
To me it helps in order to memorize the spec to understand why the spec is the way it is. I tried to help explaining some of that, but I notice that I created more confusion... I never intended IBPB can be skipped in user to user switches if leaving IBRS set in userland, that's not what we do and it wouldn't be ok with certain smarter CPUs. > yes the wording is a bit cryptic, but it's also very explicit about > what it covers (and the rest is not covered!) and had to allow a few > different implementations unfortunately. We already follow the spec to the letter and we only depend on what is covered there. Surely the specs already explain everything better than I could ever do, so if anything wasn't clear in the two previous emails where I failed to explain the difference between setting or leaving IBRS set in userland (ibrs_user) and setting or leaving STIBP set in userland (stibp_user) you'll find all answers in the very explicit spec per above quote. Thanks, Andrea