On 07/08/2011 12:33 PM, Nicolas Pitre wrote:
I'm not sure I agree. We're talking about extremely lightweight functions here, in the order of a very few assembly instructions only. Adding a significant overhead relative to their cost is not very appealing.
...
But my point is that they were willing to do such hacks to completely avoid the call overhead, and in such cases I don't see adding to it with a full blown VDSO as something positive.
My last word on a subject I'm not currently being paid to care about:
I find this attitude to be short-sighted. These exact same arguments were made about a.out vs elf, and all the horrible extra overhead that elf has with its plts and dynamic symbol resolution. And yet, thankfully, a.out has gone the way of the dodo.
I urge you to go ahead and create the VDSO anyway, even if you continue to bypass it with new fixed addresses for new entry points. The VDSO does more than simply hold the code for those functions, it also describes them with the symbol and symbol versioning tables, and the unwind info. This is of enormous value to debugging and other introspection tools.
r~