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

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


 


Rackspace

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