|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] hypercall execution path?
On Thu, 2007-02-22 at 13:30 -0500, Bryan D. Payne wrote:
> > so: what does it point at? what's the page address, which offset?
>
> On my machine (xen 3.0.4_1, linux 2.6.16.33-xen), the EIP register in
> the guest's vcpu holds 0xc01013a7. For reference, the hypercall page is
> 0xc0101000, this is at offset 0x3a7 on that page. Looking at the
> disassembly from that page at this location, I see the following:
>
> mov 0x1d, %eax
> int $0x82
> ret
>
> The EIP value is pointing at the 'ret' instruction. Looking in the
> hypercall table, this (0x1d) is the sched_op hypercall (which is not the
> hypercall that I called).
>
>
> > after looking into traps.c: take good care with the layout: hypercall
> > pages on x86_32 are 32 (!) bytes per entry (not 8 as the loop body might
> > suggest). are your calculations correct?
>
> I believe so, but you can verify with the information that I provided
> above. 0x1d * 32 = 0x3a0... this matches the offset I'm seeing.
>
> Hopefully someone can help me make sense of this :-)
The most common reason for sched_op being called is that the vcpu is
idle (SCHEDOP_block).
Are you sure you are looking at the correct vcpu?
How are you looking at the EIP register?
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|