Re: Duplicate vsyscall/vdso gettimeofday implementations on x86_64

From: john stultz
Date: Sat Jul 18 2009 - 18:03:32 EST


On Sat, 2009-07-18 at 08:07 +0200, Andi Kleen wrote:
> john stultz <johnstul@xxxxxxxxxx> writes:
> >
> > Hrmm. Can we deprecate the old method and push glibc to use the new one?
>
> That would break every old 64bit executable. Also not there are programs
> who don't use glibc.
>
> Also glibc's way of calling the vDSO is still somewhat inefficient
> (although that could be probably fixed)
>
> > If we remove it the vsyscall interface will old glibc's fall-back
> > gracefully?
>
> They would crash gracefully.
>
> I had a couple of different transition plans, but they were all fairly
> complicated and had various disadvantages, so in the end nothing got
> done and the old code just left in.

Ok. Ulrich mailed me with the same points earlier and here's what I
said:

It seems the options are:

1) Keep the old vsyscall gtod implementation as is, despite it
duplicating things. Maybe avoid the code duplication via inlined
functions.

2) Set the old vsyscall gtod to directly call the syscall.

Neither of these help to avoid the non-randomized syscall instruction.
And #2 punishes old users for no really good reason, so #1 is probably
the best approach.

I'll try to put a patch together next week just to try to clean things
up a bit.

If anyone has any other ideas, let me know.

thanks
-john


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/