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

Re: [Xen-devel] [PATCH V2] xen: vmx: Use an INT 2 call to process real NMI's instead of self_nmi() in VMEXIT handler

At 17:03 +0000 on 15 Nov (1352998993), Mats Petersson wrote:
> >On an AMD CPU we _don't_ have dedicated stacks for NMI or MCE when we're
> >running a HVM guest, so the stack issue doesn't apply (but nested NMIs
> >are still bad).
> >
> >On an Intel CPU, we _do_ use dedicated stacks for NMI and MCE in HVM
> >guests.  We don't really have to but it saves time in the context switch
> >not to update the IDT.  Using do_nmi() here means that the first NMI is
> >handled on the normal stack instead.  It's also consistent with the way
> >we call do_machine_check() for the MCE case.  But it needs an explicit
> >IRET after the call to do_nmi() to make sure that NMIs get re-enabled.
> Both AMD and Intel has an identical setup with regard to stacks and 
> general "what happens when we taken one of these interrupts".

My reading of svm_ctxt_switch_{to,from} makes me disagree with this. 
AFAICT, on SVM we're not using dedicated stacks at all. 

> The issues with regards to nesting of NMI and MCE is completely 
> different from the "how do we issue an NMI from the HVM handling code 
> when the guest got interrupted by NMI".

Yes.  As I said, we should take the fix to the VMX NMI handling now, and
sort out the nesting separately.


Xen-devel mailing list



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