On 29/01/2018 22:13, Andi Kleen wrote: >> What happens when someone introduces a >> workaround tied to some other model numbers? > There are already many of those in the tree for other issues and features. > So far you managed to survive without. Likely that will be true > in the future too. "Guests have to live with processor fuckups" is actually a much better answer than "Hypervisors may need to revisit their practice", since at least it's clear where the blame lies. Because really it's just plain luck. It just happens that most errata are for functionality that is not available to a virtual machine (e.g. perfmon and monitor workarounds or buggy TSC deadline timer that hypervisors emulate anyway), that only needs a chicken bit to be set in the host, or the bugs are there only for old hardware that doesn't have virtualization (X86_BUG_F00F, X86_BUGS_SWAPGS_FENCE). CPUID flags are guaranteed to never change---never come, never go away. For anything that doesn't map nicely to a CPUID flag, you cannot really express it. Also if something is not architectural, you can pretty much assume that you cannot know it under virtualization. f/m/s is not architectural; family, model and stepping mean absolutely nothing when running in virtualization, because the host CPU model can change under your feet at any time. We force guest vendor == host vendor just because otherwise too much stuff breaks, but that's it. Paolo