Re: [PATCH v14 8/9] KVM: x86: virtualize cpuid faulting

From: Jim Mattson
Date: Fri Jul 27 2018 - 17:03:57 EST

On Fri, Jul 27, 2018 at 1:46 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
>> On Jul 27, 2018, at 1:28 PM, Jim Mattson <jmattson@xxxxxxxxxx> wrote:
>> Initializing this bit to zero helps with migration, but then if the
>> CPUID faulting bits in both MSRs are set, userspace has to take pains
>> to ensure that MSR_PLATFORM_INFO is restored first, or the
>> MSR_MISC_FEATURES_ENABLES value will be rejected.
> The code could drop the constraint and just let the entry possibly fail if the MSRs are set wrong

That would be an improvement, I think.

>> I'm also concerned about the 0 in the "Maximum Non-Turbo Ratio" field
>> feeding into someone's calculated TSC frequency.
> Hmm. I donât have a good answer to that. Are there any real CPUs that have this MSR but donât have that field?

No. The reason I bring this up is that a customer has code that
expects to be able to derive the TSC frequency from this MSR (per
Intel's instructions in SDM volume 3, section 18.7.3), and they were
surprised to find that the MSR raises #GP on our platform. We're
looking into cherry-picking this support from upstream as a start, but
I know the customer would be unhappy to read zero from bits 15:8.