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

Re: [Xen-devel] RIP register value in p2m_mem_access_check()

>>> On 06.03.13 at 12:35, Razvan Cojocaru <rzvncj@xxxxxxxxx> wrote:
>>  v->arch.user_regs.eip is what you should look at. It's
>> expected to be in sync with the VMCS value as long as
>> nothing (e.g. emulation) modified the value. There's code in
>> vmx_asm_vmexit_handler to sync the fields, and in
>> vmx_asm_do_vmentry to sync them back in the opposite
>> direction.
> Thank you for your answer. Isn't it possible that emulation is indeed 
> involved, since in p2m_mem_access_check() a page fault has occured, and 
> RIP might point to _after_ the offending instruction?

That wouldn't match your observation (the two values were
much farther apart), unless a call or jump got emulated.

Further, after emulation, the user_regs.eip value should be the
canonical one.

And finally, you said you took this right after a page fault
occurred, and - just like for any fault - the RIP the fault refers
to is the faulting instruction, not the one following it.


Xen-devel mailing list



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