All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@suse.com>
To: George Dunlap <George.Dunlap@eu.citrix.com>, liang.z.li@intel.com
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: [PATCH] x86/hvm: Fix the unknown nested vmexit reason 80000021 bug
Date: Mon, 13 Apr 2015 16:17:20 +0100	[thread overview]
Message-ID: <552BFA2002000078000718F0@mail.emea.novell.com> (raw)
In-Reply-To: <CAFLBxZZL_Yv_16FZ03QnK5aaRgY5h3FNxKnwtF1t34uWxVu33w@mail.gmail.com>

>>> On 08.04.15 at 11:20, <George.Dunlap@eu.citrix.com> wrote:
> On Tue, Apr 7, 2015 at 5:11 PM, Andrew Cooper <andrew.cooper3@citrix.com> 
> 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@intel.com>
>>> ---
>>>  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

  reply	other threads:[~2015-04-13 15:17 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-07 13:27 [PATCH] x86/hvm: Fix the unknown nested vmexit reason 80000021 bug Liang Li
2015-04-07 16:11 ` Andrew Cooper
2015-04-08  9:20   ` George Dunlap
2015-04-13 15:17     ` Jan Beulich [this message]
2015-04-14  2:20       ` Li, Liang Z
2015-04-08  7:15 ` Tian, Kevin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=552BFA2002000078000718F0@mail.emea.novell.com \
    --to=jbeulich@suse.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=liang.z.li@intel.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.