All of lore.kernel.org
 help / color / mirror / Atom feed
* RIP register value in p2m_mem_access_check()
@ 2013-03-06 10:55 Razvan Cojocaru
  2013-03-06 11:15 ` Jan Beulich
  0 siblings, 1 reply; 12+ messages in thread
From: Razvan Cojocaru @ 2013-03-06 10:55 UTC (permalink / raw)
  To: xen-devel@lists.xen.org

Hello again,

simple test case: added the following statement in 
xen/arch/x86/mm/p2m.c, in function p2m_mem_access_check():

printk("v->arch.user_regs.eip: 0x%016lx, __vmread(GUEST_RIP): 
0x%016lx\n", v->arch.user_regs.eip, __vmread(GUEST_RIP));

(where v is current) which dutifully prints out (at the first page fault):

(XEN) v->arch.user_regs.eip: 0xfffff80002c13a7b, __vmread(GUEST_RIP): 
0xfffff8000269ec0a

They're not equal, and furthermore __vmread(GUEST_RIP) is the correct 
one (the same value returned by xc_domain_hvm_getcontext_partial()).

The questions:

1. What's the Xen-friendliest way to retrieve the _correct_ values for 
RIP and all the other registers usually put in a struct hvm_hw_cpu 
instance, in p2m_mem_access_check()?

2. What's the explanation for why things run as they do now?


Thanks,
Razvan Cojocaru

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2013-03-07 17:31 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-06 10:55 RIP register value in p2m_mem_access_check() Razvan Cojocaru
2013-03-06 11:15 ` Jan Beulich
2013-03-06 11:35   ` Razvan Cojocaru
2013-03-06 13:22     ` Jan Beulich
2013-03-06 13:25       ` Razvan Cojocaru
2013-03-06 13:49       ` Razvan Cojocaru
2013-03-06 14:26         ` Razvan Cojocaru
2013-03-06 14:33         ` Jan Beulich
2013-03-06 14:47           ` Razvan Cojocaru
2013-03-07 16:49           ` Tim Deegan
2013-03-07 17:04             ` Jan Beulich
2013-03-07 17:31             ` Razvan Cojocaru

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.