powerpc/vdso64: Add support for CLOCK_{REALTIME/MONOTONIC}_COARSE
authorSantosh Sivaraj <santosh@fossix.org>
Mon, 16 Oct 2017 05:49:14 +0000 (11:19 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 4 Dec 2017 04:01:09 +0000 (15:01 +1100)
commit5c929885f1bb4b77f85b1769c49405a0e0f154a1
tree25917723f5393257b386deef8f796bb36e71de8d
parentf0200c02883367f0eb6c9e2f19a8ab6335a52b86
powerpc/vdso64: Add support for CLOCK_{REALTIME/MONOTONIC}_COARSE

Current vDSO64 implementation does not have support for coarse clocks
(CLOCK_MONOTONIC_COARSE, CLOCK_REALTIME_COARSE), for which it falls back
to system call, increasing the response time, vDSO implementation reduces
the cycle time. Below is a benchmark of the difference in execution times.

(Non-coarse clocks are also included just for completion)

clock-gettime-realtime: syscall: 172 nsec/call
clock-gettime-realtime:    libc: 28 nsec/call
clock-gettime-realtime:    vdso: 22 nsec/call
clock-gettime-monotonic: syscall: 171 nsec/call
clock-gettime-monotonic:    libc: 30 nsec/call
clock-gettime-monotonic:    vdso: 25 nsec/call
clock-gettime-realtime-coarse: syscall: 153 nsec/call
clock-gettime-realtime-coarse:    libc: 16 nsec/call
clock-gettime-realtime-coarse:    vdso: 10 nsec/call
clock-gettime-monotonic-coarse: syscall: 167 nsec/call
clock-gettime-monotonic-coarse:    libc: 17 nsec/call
clock-gettime-monotonic-coarse:    vdso: 11 nsec/call

CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/vdso64/gettimeofday.S