[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/hvm: Fix the unknown nested vmexit reason 80000021 bug



>>> On 08.04.15 at 11:20, <George.Dunlap@xxxxxxxxxxxxx> wrote:
> On Tue, Apr 7, 2015 at 5:11 PM, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> 
> wrote:
>> On 07/04/15 14:27, Liang Li wrote:
>>> This bug will be trigged when NMI happen in the L2 guest. The current
>>> code handles the NMI incorrectly. According to Intel SDM 31.7.1.2
>>> (Resuming Guest Software after Handling an Exception), If bit 31 of the
>>> IDT-vectoring information fields is set, and the virtual NMIs VM-execution
>>> control is 1, while bits 10:8 in the IDT-vectoring information field is
>>> 2, bit 3 in the interruptibility-state field should be cleared to avoid
>>> the next VM entry fail.
>>>
>>> Signed-off-by: Liang Li <liang.z.li@xxxxxxxxx>
>>> ---
>>>  xen/arch/x86/hvm/vmx/vmx.c | 6 +++---
>>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
>>> index e1c55ce..b1f2df8 100644
>>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>>> @@ -2621,7 +2621,8 @@ static void vmx_idtv_reinject(unsigned long idtv_info)
>>>           * Clear NMI-blocking interruptibility info if an NMI delivery 
> faulted.
>>>           * Re-delivery will re-set it (see SDM 3B 25.7.1.2).
>>>           */
>>> -        if ( (idtv_info & INTR_INFO_INTR_TYPE_MASK) == 
>>> (X86_EVENTTYPE_NMI<<8) )
>>> +        if ( cpu_has_vmx_vnmi && ((idtv_info & INTR_INFO_INTR_TYPE_MASK) ==
>>> +                                 (X86_EVENTTYPE_NMI<<8)) )
>>
>> This would be easier to read as
>>
>> if ( cpu_has_vmx_vnmi &&
>>      (idtv_info & INTR_INFO_INTR_TYPE_MASK) == (X86_EVENTTYPE_NMI<<8)) )
> 
> I was going to say something similar, but I think in the past Jan has
> said that Liang's original is more in line with the coding style.

No, my complaint here wouldn't be about coding style, but about the
hard-coded 8 - it's not been that long ago that I replaced may of
them, and I'd really like to see it replaced here too. Liang - can you
please submit an incremental change (as the original one got
committed already)? There should be several examples in VMX code
on how the 8 can be avoided.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.