RE: [PATCH] KVM: x86: reset RVI upon system reset

Zhang, Yang Z
2014-12-11T11:06:09Z

Zhang Haoyu wrote on 2014-12-11:
> Then?

It's already in upstream KVM

commit 4114c27d450bef228be9c7b0c40a888e18a3a636
Author: Wei Wang <wei.w.wang@intel.com>
Date: Wed Nov 5 10:53:43 2014 +0800

KVM: x86: reset RVI upon system reset

A bug was reported as follows: when running Windows 7 32-bit guests on qemu-kvm,
sometimes the guests run into blue screen during reboot. The problem was that a
guest's RVI was not cleared when it rebooted. This patch has fixed the problem.

Signed-off-by: Wei Wang <wei.w.wang@intel.com>
Signed-off-by: Yang Zhang <yang.z.zhang@intel.com>
Tested-by: Rongrong Liu <rongrongx.liu@intel.com>, Da Chun <ngugc@qq.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

>
>>> On 05/11/2014 10:02, Chen, Tiejun wrote:
>>>>> I think both are ok.
>>>>> If we zero max_irr in vmx_set_rvi(), we still need this check:
>>>>> if ((is_guest_mode(vcpu) && nested_exit_on_intr(vcpu)) || max_irr
>>>>> ==
>>>>> -1)
>>>>
>>>> No, I don't think we need to add this.
>>>
>>> You don't, because the code will look like:
>>>
>>> if (is_guest_mode(vcpu) && nested_exit_on_intr(vcpu))
>>> return; if (!is_guest_mode(vcpu)) {
>>> vmx_set_rvi(max_irr); return;
>>> }
>>>
>>> if (max_irr == -1)
>>> return;
>>> and thus vmx_set_rvi() is never reached if is_guest_mode(vcpu) &&
>>> !nested_exit_on_intr(vcpu).
>>
>> I don't think the above code is perfect. Since hwapic_irr_update() is
>> a hot point,
> it's better to move the first check after the second check. In this
> case, Wei's patch looks more reasonable.
>>
>>>
>>> I applied the lapic.c part of Wei's patch, and the vmx.c part of Tiejun's patch.
>>>
>>> Paolo
>>
>>
>> Best regards,

Best regards,
Yang