Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patch

From: Eric W. Biederman
Date: Fri Jan 30 2004 - 19:25:27 EST


Jamie Lokier <jamie@xxxxxxxxxxxxx> writes:

> Ulrich Drepper wrote:
> > ~ alternatively use the symbol table the vdso has. Export the new code
> > only via the symbol table. No fixed address for the function, the
> > runtime gets it from the symbol table. glibc will use weak symbol
> > references; if the symbol isn't there, the old code is used. This will
> > require that every single optimized syscall needs to be handled special.
> >
> >
> > I personally like the first approach better. The indirection table can
> > maintained in sync with the syscall table inside the kernel. It all
> > comes at all times from the same source. The overhead of the memory
> > load should be neglectable.
>
> I like the second approach more. You can change glibc to look up the
> weak symbol for _all_ syscalls, then none of them are special and it
> will work with future kernel optimisations.

There is one more piece to consider with either approach. The
calling conventions.

With the x86-64 optimized vsyscall the syscall number does
not need to be placed into a register, because you have used
the proper entry point. For any syscall worth tuning in
user space I suspect that level of optimization would be
beneficial. A fast call path that does not waste a register.

Eric
-
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/