ANDROID: arch: arm64: vdso: export the symbols for time()

__cvdso_time() can be found in vDSO implementation,
but the symbols for time() are not exported.

Export the symbols and run bionic-benchmarks.

BEFORE:
bionic-benchmarks32 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     83.6 ns         83.5 ns      8385964

bionic-benchmarks64 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     63.5 ns         63.4 ns     11037509

AFTER:
bionic-benchmarks32 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     8.57 ns         8.56 ns     81887312

bionic-benchmarks64 --bionic_extra BM_time_time
-----------------------------------------------------
Benchmark           Time             CPU   Iterations
-----------------------------------------------------
BM_time_time     7.52 ns         7.51 ns     93253809

Signed-off-by: Chiawei Wang <chiaweiwang@google.com>
Bug: 154668398
Bug: 157925983
Test: run bionic-benchmarks --bionic_xml vdso.xml
(cherry picked from fc30ad8ca60eccbce5245103fb4a2b070aa294de)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Change-Id: Ibd9835254c065801ba2f0976dffbf70d7bf0c85c
This commit is contained in:
Chiawei Wang 2020-06-08 23:38:46 +08:00 • committed by Mark Salyzyn
commit 7bbd50f11d
6 changed files with 16 additions and 0 deletions

View file

@ -16,6 +16,8 @@
#define VDSO_HAS_CLOCK_GETRES 1
#define VDSO_HAS_TIME 1
#define VDSO_HAS_32BIT_FALLBACK 1
#define BUILD_VDSO32 1

View file

@ -13,6 +13,8 @@
#define VDSO_HAS_CLOCK_GETRES 1
#define VDSO_HAS_TIME 1
static __always_inline
int gettimeofday_fallback(struct __kernel_old_timeval *_tv,
struct timezone *_tz)

View file

@ -77,6 +77,7 @@ VERSION
__kernel_gettimeofday;
__kernel_clock_gettime;
__kernel_clock_getres;
__kernel_time;
local: *;
};
}

View file

@ -23,3 +23,8 @@ int __kernel_clock_getres(clockid_t clock_id,
{
return __cvdso_clock_getres(clock_id, res);
}
time_t __kernel_time(time_t *time)
{
return __cvdso_time(time);
}

View file

@ -69,6 +69,7 @@ VERSION
__kernel_rt_sigreturn_arm;
__kernel_rt_sigreturn_thumb;
__vdso_clock_gettime64;
__vdso_time;
local: *;
};
}

View file

@ -30,6 +30,11 @@ int __vdso_clock_getres(clockid_t clock_id,
return __cvdso_clock_getres_time32(clock_id, res);
}
time_t __vdso_time(time_t *time)
{
return __cvdso_time(time);
}
/* Avoid unresolved references emitted by GCC */
void __aeabi_unwind_cpp_pr0(void)