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

RE: [Xen-devel] About VMX VMExit handler


  • To: Wu Bingzheng <wubingzheng@xxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Li, Xin" <xin.li@xxxxxxxxx>
  • Date: Wed, 20 May 2009 16:16:42 +0800
  • Accept-language: en-US
  • Acceptlanguage: en-US
  • Cc:
  • Delivery-date: Wed, 20 May 2009 01:17:41 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcnZHthQHeoCFHjCSem76TuzZHCDmwAA8PfQ
  • Thread-topic: [Xen-devel] About VMX VMExit handler

>In VM Exit handler, vmx_asm_vmexit_handler(),
>[xen-3.3.0/xen/arch/x86/hvm/vmx/entry.S:line65], it first saves
>guest's RIP, RSP, RFLAGS from VMCS to stack by VMREAD,
>then call vmx_vmexit_handler, and then recover guest's RIP, RSP and RFLAGS.

>1. The VMCS is designed to save these registers,
>why need to save them into stack still?

These fields may be changed by common code, like shadow, you don't want to 
Update VMCS directly in shadow code, or you'll need arch specific function 
pointers in shadow.

>2. What should I do, if I want to change the guest's RIP
>in vmx_vmexit_handler(), in order to let the guest load the
>new RIP on VM Entry? It doesn't work of changing the RIP
>in VMCS. Do I have to change the RIP in the stack?

Yes, we have __update_guest_eip for that purpose.
Thanks!
-Xin

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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