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

Re: [Xen-devel] Failed vm entry when emulating in hvm_do_resume()



On 04/04/16 14:32, Razvan Cojocaru wrote:
> Hello,
>
> As a test, I've modified xen-access.c to this simplified skeleton:
>
> http://pastebin.com/48WYwW00
>
> then started up an x86 Windows 7 HVM guest, and ran it with:
>
> # ./xen-access <dom_id> write
>
> once the login screen appeared. The guest promptly crashed with this
> backtrace:
>
> http://pastebin.com/Bz0GeFta
>
> The modified xen-access.c simply removes write rights for all of the
> guest's pages, then attempts to emulate all instructions that might
> cause a page fault. While I didn't expect the guest to run in a useable
> manner, or Xen to be able to emulate all the instructions, I did not
> expect the guest to crash.

This is just a plain emulation bug in 'cli', and has already been
reported on the list.  Noone has addressed the issue yet.

The vmentry failure will be eflags not matching up with some other vmcs
state.  Looks like you have valid VMEntry intr_info injecting vector
0xd1, and eflags.IF disabled.  This smells like a bug when considering
whether to inject the next pending interrupt from the lapic.

The reason you are seeing this with introspection is because you are the
first people to test these codepaths.  Normally, there is no way a 'cli'
instruction could fault for emulation, because it has no memory operand.

~Andrew

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