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

[Xen-devel] Re: Performance overhead of paravirt_ops on native identified



On Wed, 13 May 2009 17:16:55 -0700
Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:

> Paravirt patching turns all the pvops calls into direct calls, so
> _spin_lock etc do end up having direct calls.  For example, the compiler
> generated code for paravirtualized _spin_lock is:
> 
> <_spin_lock+0>:               mov    %gs:0xb4c8,%rax
> <_spin_lock+9>:               incl   0xffffffffffffe044(%rax)
> <_spin_lock+15>:      callq  *0xffffffff805a5b30
> <_spin_lock+22>:      retq
> 
> The indirect call will get patched to:
> <_spin_lock+0>:               mov    %gs:0xb4c8,%rax
> <_spin_lock+9>:               incl   0xffffffffffffe044(%rax)
> <_spin_lock+15>:      callq <__ticket_spin_lock>
> <_spin_lock+20>:      nop; nop                /* or whatever 2-byte nop */
> <_spin_lock+22>:      retq
> 

Can't those calls be changed to jumps?

_______________________________________________
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®.