Re: [PATCH 0/4] KVM: nVMX: prepare_vmcs02 optimizations

From: Paolo Bonzini
Date: Mon Jan 01 2018 - 18:01:12 EST


On 01/01/2018 10:36, Paolo Bonzini wrote:
> On 28/12/2017 09:39, Wanpeng Li wrote:
>> 2017-12-27 22:28 GMT+08:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>:
>>> On 25/12/2017 11:08, Wanpeng Li wrote:
>>>>> I observe L1(latest kvm/queue) panic and L0(latest kvm/queue)
>>>>> calltrace, I'm not sure whether it is caused by this patchset.
>>>> It can be reproduced steadily by running kvm-unit-tests in L1.
>>>
>>> It works here, can you show the L0 call trace and/or bisect it?
>>
>> L0 call trace has already been posted here.
>> https://lkml.org/lkml/2017/12/25/53 In addition, the splatting is
>> still there after I revert the last 9 nVMX optimization patches in
>> kvm/queue. So it is not caused by this patchset. :)
>
> Hmm, maybe you're using "-cpu host,+umip"? I'll check when I get back
> to work tomorrow.

Yeah, I think this could be it:

diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 30e6115d4f09..6404e96179b4 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -10780,6 +10780,7 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
exec_control &= ~(SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES |
SECONDARY_EXEC_ENABLE_INVPCID |
SECONDARY_EXEC_RDTSCP |
+ SECONDARY_EXEC_DESC |
SECONDARY_EXEC_XSAVES |
SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY |
SECONDARY_EXEC_APIC_REGISTER_VIRT |

Paolo