[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: lmbench lat_mmap slowdown with CONFIG_PARAVIRT
Zachary Amsden wrote: These fragments, from native_pgd_val, certainly don't help: c0120f60: 55 push %ebp c0120f61: 89 e5 mov %esp,%ebp c0120f63: 5d pop %ebp c0120f64: c3 ret c0120f65: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi c0120f69: 8d bc 27 00 00 00 00 lea 0x0(%edi,%eiz,1),%edi Yes, that's a rather awful noop; compiling without frame pointers reduces this to a single "ret". That is really disgusting. We absolutely should be patching away the function calls here in the native case.. not sure we do that today. I did have some patches to do that at one point. If you set pgd_val = paravirt_nop, then the patching machinery will completely nop out the call site. The problem is that it depends on the calling convention using the same regs for the first arg and return - true for 32-bit, but not 64. We could fix that with identity functions which the patcher recognizes and can replace with either pure nops or inline appropriate register moves. Also, I just posted patches to get rid of all pvops calls when fetching or setting flags in a pte, which I hope will help. J _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |