Jamie Lokier <jamie _at_ shareable.org> 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 _at_ vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Follow-Ups: References:
- [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patchjohn stultz
- Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patchUlrich Drepper
- Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patchJamie Lokier
- Prev by Date: Re: 2.6.2-rc2-mm2
- Next by Date: Re: 2.6.1 "clock preempt"?
- Previous by thread: Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patch
- Next by thread: Re: [RFC][PATCH] linux-2.6.2-rc2_vsyscall-gtod_B1.patch
- Indexes:[Main][Thread]