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

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

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.

Well, I've downloaded and installed a fresh copy of Xen 4.2.0 from the official website, and added the printk() to p2m.c (the only modification I've done):

1311         req->vcpu_id = v->vcpu_id;
1313 printk("v->arch.user_regs.eip: 0x%016lx, __vmread(GUEST_RIP):0x%016lx\n",
1314                v->arch.user_regs.eip, __vmread(GUEST_RIP));
1315     }

I then launched my guest VM, and tested it with the xen-access tool from tools/tests/xen-access, which I've run like this (1 is the machine ID, as printed out by 'sudo xm list'):

sudo ./xen-access 1 write

Here's what the hypervisor wrote (values that are different appear once per each VCPU):

(XEN) HVM1: Booting from 0000:7c00
(XEN) v->arch.user_regs.eip: 0x00000000fc002de9, __vmread(GUEST_RIP):0x0000000000007c17 (XEN) v->arch.user_regs.eip: 0x0000000000007c17, __vmread(GUEST_RIP):0x0000000000000667 (XEN) v->arch.user_regs.eip: 0x0000000000000667, __vmread(GUEST_RIP):0x0000000000000116 (XEN) v->arch.user_regs.eip: 0x0000000000000116, __vmread(GUEST_RIP):0x0000000000000116 (XEN) v->arch.user_regs.eip: 0x0000000000000116, __vmread(GUEST_RIP):0x00000000000005ab (XEN) v->arch.user_regs.eip: 0x00000000000005ab, __vmread(GUEST_RIP):0x00000000000001e7 (XEN) v->arch.user_regs.eip: 0x00000000000001e7, __vmread(GUEST_RIP):0x00000000000001f3 (XEN) v->arch.user_regs.eip: 0x00000000000001f3, __vmread(GUEST_RIP):0x0000000000000b71 (XEN) v->arch.user_regs.eip: 0x0000000000000b71, __vmread(GUEST_RIP):0x0000000000000782 (XEN) v->arch.user_regs.eip: 0x0000000000000782, __vmread(GUEST_RIP):0x0000000000000782 (XEN) v->arch.user_regs.eip: 0x0000000000000782, __vmread(GUEST_RIP):0x0000000000000782

Not sure what's going on, but this time the only code I've added is the printk(). Any thoughts?

Razvan Cojocaru

Xen-devel mailing list



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