On 30/04/2018 17:11, Jim Mattson wrote: > Given that userspace is responsible for setting up reasonable CPUID > values, why do we have special handling for INVPCID? Specifically, why > clear INVPCID from the guest CPUID when the guest CPUID doesn't > enumerate support for PCID? Yes, it's a strange combination, but why > impose this constraint in the kernel, especially when we don't impose > any similar constraints? For example, we allow AVX-512 without XSAVE, > and that combination makes even less sense than INVPCID without PCID. My guess is as good as yours regarding the historical reasons, but again it may have to do with INVPCID requiring an execution control to be enabled, and the author not wanting to enable that execution control unless needed---for whatever reason. I'm sure you can find another case that requires execution controls and where we don't do the same, though. Paolo