Re: [PATCH v4 2/2] KVM: nVMX: Fix preemption timer bit set in vmcs02 even if L1 doesn't enable it

From: Paolo Bonzini
Date: Fri Jul 08 2016 - 11:47:15 EST




On 08/07/2016 16:08, Wanpeng Li wrote:
> 2016-07-08 21:58 GMT+08:00 Wanpeng Li <kernellwp@xxxxxxxxx>:
>> We can't get preemption timer vmexit which vmcs02 is loaded since
>> preemtion timer bit in vmcs02 is not set, then how can we get the
>> incorrect preemption timer vmexit in nested guest which patch 1 fixed?
>> Because the scenario I mentioned in patch 2 set vmcs02.
>>
>> w/o patch1 + w/o enable "L1 TSC deadline timer to trigger while L2 is
>> running" => we will get the bug calltrace mentioned in patch1 since
>> incorrect vmcs02 bit is set due to the bug mentioned in patch 2. So
>> apply patch2 can fix it.
>>
>> However, after enable "L1 TSC deadline timer to trigger while L2 is
>> running", we should have patch 1 to correctly capture nested vmexit
>> for preemption timer.
>>
>> My setup is L0 and L1 both are latest kvm queue branch w/ Yunhong's
>> preemption timer enable patches and my previous "fix missed
>> cancellation of TSC deadline timer" patches. I always enable
>> preemption timer in L0, but try to enable or disable preemption timer
>> in L1.
>
> Btw, my L1 is a full dynticks guest in order that hrtimer in L1 will
> be heavily used.

Thanks---I'd be grateful if you tested my patch series.

Paolo