Messages in this thread | | | Date | Thu, 22 Jan 2009 14:49:00 -0800 | From | "H. Peter Anvin" <> | Subject | Re: lmbench lat_mmap slowdown with CONFIG_PARAVIRT |
| |
Jeremy Fitzhardinge wrote: > > 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. >
There is also the option to use assembly wrappers to avoid relying on the calling convention. This is particularly so since we have sites where as little as a two-byte instruction gets bloated up with huge push/pop sequences around a tiny instruction. Those would be better served with a direct call to a stub (5 bytes), which would be repatched to the two-byte instruction + 3 byte nop.
-hpa
| |