[PATCH] time: Use CLOCK_REALTIME for time (BZ #30200)

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Wed Mar 8 17:46:08 GMT 2023



On 08/03/23 14:09, Florian Weimer wrote:
> * Adhemerval Zanella Netto:
> 
>> On 08/03/23 13:23, Bruno Haible wrote:
>>> Paul Eggert wrote:
>>>> My idea is to go through the apps I help maintain, and make sure that 
>>>> they never call 'time' anywhere that it's important that a timestamp be 
>>>> in sync with with the rest of the system
>>>
>>> Alternatively, these applications can continue to call 'time', if the
>>> package uses the Gnulib module 'time' that provides a workaround against
>>> https://sourceware.org/bugzilla/show_bug.cgi?id=30200 .
>>>
>>> Bruno
>>
>> Florian, do you really think that and latency increase of roughly 15ns 
>> is really worth all the trouble gnulib is pushing? It means that we will 
>> end up with programs that use CLOCK_REALTIME, while other use 
>> CLOCK_REALTIME_COURSE.  
>>
>> If users really to squeeze more performance, they can use clock_gettime
>> with CLOCK_REALTIME_COURSE.  It should have similar performance to
>> time vDSO.
> 
> Eh, I think the difference derives from using the time vDSO entrypoint
> (which your patch removed as well on x86-64).  I don't see a performance
> difference between CLOCK_REALTIME and CLOCK_REALTIME_COARSE, so that's
> not it.

I just did some benchmarks using vdso test with time vdso support [1]

$ ./vdsotest clock-gettime-realtime bench
clock-gettime-realtime: syscall: 82 nsec/call
clock-gettime-realtime:    libc: 18 nsec/call
clock-gettime-realtime:    vdso: 18 nsec/call

$ ./vdsotest clock-gettime-realtime-coarse bench
clock-gettime-realtime-coarse: syscall: 65 nsec/call
clock-gettime-realtime-coarse:    libc: 5 nsec/call
clock-gettime-realtime-coarse:    vdso: 3 nsec/call

$ ./vdsotest time bench
time: syscall: 41 nsec/call
time:    libc: 2 nsec/call
time:    vdso: 1 nsec/call

So while time vdso still show small improvement, I hardly think it is a 
dealbreaker. 

[1] git@github.com:zatrazz/vdsotest.git


More information about the Libc-alpha mailing list