Messages in this thread | | | Date | Fri, 09 Oct 2009 21:47:28 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: Duplication of vdso and vsyscall code? |
| |
On 10/09/09 21:14, Andi Kleen wrote: > One is at a fixed position in the user address space, and the other at a > randomized position. The fixed one came first. Fixed doesn't know > where randomized is. Randomized is also compiled and linked completely > differently. Is the fixed vsyscall stuff now considered to be legacy? As far as I can see, the vdso seems to be what ends up being used on all the systems I've tried (going back to Fedora 8).
> In theory the randomized one could call the fixed one, but > originally there were some thoughts about turning off fixed for some > applications that don't need it and also the path was considered very > performance critical, so unneeded jumps were avoided. >
rdtsc seems to swamp pretty much everything else. In my measurements it alone takes 1/3 of the time. Though that's Core2; AMD have traditionally been much better at those kinds of things.
> In theory you could probably #include the code from a common file, but it > wouldn't buy you too much.
Yes, that's what I had in mind. I don't think duplicating the instructions is all that important, but having two separate similarish pieces of code seems like a maintenance headache. I only discovered the second set of code by accident; I'd assumed that once I'd found one vgettimeofday I'd found them all (and I'd been assuming that clock_gettime didn't get the same treatment).
I'll see what happens if I try unifying them...
J
| |