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

Re: [Xen-devel] AMD VMMCALL and VM86 mode



----- andrew.cooper3@xxxxxxxxxx wrote:

> On 09/12/16 19:55, Andrew Cooper wrote:
> > On 09/12/16 19:55, Boris Ostrovsky wrote:
> >> On 12/09/2016 02:01 PM, Andrew Cooper wrote:
> >>> Hello,
> >>>
> >>> While working on XSA-192, I found a curious thing.  On AMD
> hardware, the
> >>> VMMCALL instruction appears to behave like a nop if executed in
> VM86
> >>> mode.  All other processor modes work fine.
> >>>
> >>> The documentation suggests it should be valid in any situation,
> but I
> >>> never get a #VMEXIT from it. 
> >> And I assume GENERAL2_INTERCEPT_VMMCALL is set (which is what we
> have in
> >> Xen by default)?
> > Yes, because I have already used hypercalls to get text to the
> console
> > before entering vm86 mode.
> >
> >> What happens if you don't set it?
> > Let me do some hacking and see.
> 
> Outside of vm86 mode, VMMCALL raises #UD, which is expected as it
> wasn't
> intercepted.
> 
> From within vm86 mode, I now get #GP rather than #UD.
> 
> There is certainly an argument to be made that VMMCALL inside vm86
> mode
> should trap to the vm86 monitor and #GP would be the expected way of
> that happening, but this also doesn't match the documentation.


Just curious: why do you think #GP could be a reasonable exception here? It's 
#UD because if not intercepted it doesn't make sense to execute it.

But either way, I think AMD should clarify this. Suravee, can you find out what 
the expected behavior is?

-boris

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

 


Rackspace

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