Re: [PATCH 0/2] Fix issue with not starting nesting guests on my system

From: Paolo Bonzini
Date: Wed May 27 2020 - 13:00:24 EST


On 23/05/20 18:14, Maxim Levitsky wrote:
> On my AMD machine I noticed that I can't start any nested guests,
> because nested KVM (everything from master git branches) complains
> that it can't find msr MSR_IA32_UMWAIT_CONTROL which my system doesn't support
> at all anyway.
>
> I traced it to the recently added UMWAIT support to qemu and kvm.
> The kvm portion exposed the new MSR in KVM_GET_MSR_INDEX_LIST without
> checking that it the underlying feature is supported in CPUID.
> It happened to work when non nested because as a precation kvm,
> tries to read each MSR on host before adding it to that list,
> and when read gets a #GP it ignores it.
>
> When running nested, the L1 hypervisor can be set to ignore unknown
> msr read/writes (I need this for some other guests), thus this safety
> check doesn't work anymore.
>
> V2: * added a patch to setup correctly the X86_FEATURE_WAITPKG kvm capability
> * dropped the cosmetic fix patch as it is now fixed in kvm/queue
>
> Best regards,
> Maxim Levitsky
>
> Maxim Levitsky (2):
> kvm/x86/vmx: enable X86_FEATURE_WAITPKG in KVM capabilities
> kvm/x86: don't expose MSR_IA32_UMWAIT_CONTROL unconditionally
>
> arch/x86/kvm/vmx/vmx.c | 3 +++
> arch/x86/kvm/x86.c | 4 ++++
> 2 files changed, 7 insertions(+)
>

Queued for 5.7, thanks (with cosmetic touches to the commit message, and
moving the "case" earlier to avoid conflicts).

Paolo