From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeroen Groenewegen van der Weyden Subject: Re: Crash of guest with nested vmx with Unknown nested vmexit reason 80000021. Date: Wed, 29 Oct 2014 15:17:06 +0100 Message-ID: <5450F6E2.6050807@grosc.com> References: <542AD266.5030803@grosc.com> <5433B94E020000780003CBF0@mail.emea.novell.com> <5437B593.80702@grosc.com> <543F84CD020000780003F02A@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <543F84CD020000780003F02A@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , Yang Z Zhang Cc: Kevin Tian , Eddie Dong , Jun Nakajima , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org Hi, Is there any test I can do on changed code? mvg, Jeroen. Jan Beulich schreef op 16-10-2014 om 08:41: >>>> On 16.10.14 at 08:18, wrote: >> Sorry for the later reply. Yes, this is a known issue to me but I didn't >> have time to cook a patch fix it. As Jan pointed out, the NMI handling logic >> is wrong in current nested logic. But it is not a trivial task to fix them. I >> will do it once I have the time or if you are interesting in it, a patch from >> you is welcome. > If you were to at least comment on the two possible routes I > outlined (quoted below), I could see to get to this (considering > that the issue - as you point out subsequently - got brought up > more than half a year ago the first time, and is still unaddressed) > at least if the vmx_idtv_reinject() related route would be a > possible one. > > Jan > >>>>> From: Jan Beulich [mailto:JBeulich@suse.com] >>>>> So the problem here is that >>>>> >>>>>> (XEN) Interruptibility=0008 ActivityState=0000 >>>>> VMX_INTR_SHADOW_NMI is set while >>>>> >>>>>> (XEN) PinBased=0000003f CPUBased=b6b9e5fa SecondaryExec=000004eb >>>>> PIN_BASED_VIRTUAL_NMIS is active and >>>>> >>>>>> (XEN) VMEntry: intr_info=80000202 errcode=5d021101 ilen=00000003 >>>>>> (XEN) VMExit: intr_info=00000000 errcode=00000000 ilen=00000003 >>>>>> (XEN) reason=80000021 qualification=00000000 >>>>>> (XEN) IDTVectoring: info=80000202 errcode=00000000 >>>>> an NMI is being injected. This case is explicitly mentioned in Vol >>>>> 3 section 31.7.1.2 (Resuming Guest Software after Handling an >>>>> Exception). Either there needs to be extra code in vvmx.c to clear >>>>> VMX_INTR_SHADOW_NMI (as the second sub-bullet point of the last >>>>> bullet point says), or the second half of vmx_idtv_reinject() needs >>>>> to be done without regard to nestedhvm_vcpu_in_guestmode(v) (and >>>>> maybe also without regard to EXIT_REASON_TASK_SWITCH). >>>>> >>>>> Speaking of SDM sections: There are quite a few references in the >>>>> code that name just section numbers (in the case here, several >>>>> references to sections 25.7.1.* exist). These numbers become stale >>>>> quite quickly (here they're now 31.7.1.*), so in order to help >>>>> digging through issues like the one here, can I please ask one of >>>>> you to go through and replace (or at least amend) these numbers >>>>> with the sections' titles (which I hope won't get altered that quickly)? > >