[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