This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] new ppc /ppc64 vDSO submission


On Sun, 2005-12-04 at 23:24 -0600, Tom Gall wrote:
> Greetings,
> 
> Enclosed is the latest version of the vDSO implementation for ppc/ppc64 
> for __vdso_get_tbfreq, __vdso_clock_gettime, __vdso_clock_getres and 
> __vdso_gettimeofday. This patch does it's best to utilize common code so 
> the copies of clock_gettime.c and clock_getres.c are largely gone in favor 
> of the common code.
> 
> Some small tweaks are possible to the clock_getres.c and clock_gettime.c 
> code based on some discussions with ben but overall should be in good 
> shape.
> 
> Any and all comments appreciated!

You are still only replacing the INLINE_SYSCALL code path in clock_gettime.c
and clock_getres.c and not the INTERNAL_SYSCALL path called from the maybe_*
functions, thus you don't give a chance to the vDSO to implement any clock
but MONOTONIC and REALTIME (and only if __ASSUME_POSIX_TIMERS is
defined, which it hopefully is).

You should also replace the INTENAL_SYSCALL path in the maybe_*
function, as we discussed earlier. Basically, when the vDSO implement
clock_gettime() and clock_getres(), _any_ syscall to these should be
replaced by a vDSO call. The vDSO itself is responsible to decide wether
to implement a given clock ID itself or internally fallback to the
syscall, but that should be totally transparent to glibc. That way, if
figure kernels implement more clocks in the vDSOs, glibc won't have to
be changed.

That is also why the vDSO has been modified to have the exact same
calling semantics as the syscall (that is result in r3 & CR.SO) so that
it's internal syscall fallback can be done transparently.

Ben.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]