2020-01-13 17:12:11

by Christophe Leroy

[permalink] [raw]
Subject: [RFC PATCH v3 03/12] lib: vdso: mark __cvdso_clock_getres() as static

When __cvdso_clock_getres() became __cvdso_clock_getres_common()
and a new __cvdso_clock_getres() was added, static qualifier was
forgotten.

This change allows the compiler to inline __cvdso_clock_getres_common(),
and the performance improvement is significant:

Before:
clock-getres-realtime-coarse: vdso: 984 nsec/call
clock-getres-realtime: vdso: 922 nsec/call
clock-getres-monotonic-raw: vdso: 968 nsec/call

After:
clock-getres-realtime-coarse: vdso: 753 nsec/call
clock-getres-realtime: vdso: 691 nsec/call
clock-getres-monotonic-raw: vdso: 737 nsec/call

Fixes: 502a590a170b ("lib/vdso: Move fallback invocation to the callers")
Signed-off-by: Christophe Leroy <[email protected]>
---
lib/vdso/gettimeofday.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/lib/vdso/gettimeofday.c b/lib/vdso/gettimeofday.c
index 9ecfd3b547ba..42bd8ab955fa 100644
--- a/lib/vdso/gettimeofday.c
+++ b/lib/vdso/gettimeofday.c
@@ -221,6 +221,7 @@ int __cvdso_clock_getres_common(clockid_t clock, struct __kernel_timespec *res)
return 0;
}

+static __maybe_unused
int __cvdso_clock_getres(clockid_t clock, struct __kernel_timespec *res)
{
int ret = __cvdso_clock_getres_common(clock, res);
--
2.13.3