[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



On 16/11/12 08:17, Jan Beulich wrote:
On 15.11.12 at 18:25, Tim Deegan <tim@xxxxxxx> wrote:
At 16:52 +0000 on 15 Nov (1352998340), Andrew Cooper wrote:
It is also possible to get a reentrant NMI if there is a pagefault (or
handful of other possible faults) when trying to execute the iret of
the NMI itself; NMIs can get re-enabled from the iret of the
pagefault, and we take a new NMI before attempting to retry the iret
from the original NMI.
Yes, I hadn't thought of that case.
But what would make a fault happen on that IRET? Oh, yes,
there is one case - the guest having its previous instruction end
exactly at the canonical/non-canonical boundary. But for the
sake of correctness, that's a #GP then. I would suppose this
would better be filtered (manually injecting a #GP into the guest)
than allowed to actually cause a #GP.
Or, if for some reason the address we return to is "not present". Now, in the current Xen, Xen itself doesn't get paged out, but in a PV guest, I'm pretty certain the guest could decide to page out some code-page, which just happens to be the one we were about to return to?

--
Mats

Jan


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




_______________________________________________
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®.