Re: [PATCH v7 00/25] Unify vDSOs across more architectures

From: Andre Przywara
Date: Mon Jun 24 2019 - 08:51:04 EST


On Fri, 21 Jun 2019 10:52:27 +0100
Vincenzo Frascino <vincenzo.frascino@xxxxxxx> wrote:

Hi,

> vDSO (virtual dynamic shared object) is a mechanism that the Linux
> kernel provides as an alternative to system calls to reduce where
> possible the costs in terms of cycles.
[ ... ]

Some numbers for the ARM(32) part:

I booted my trusted old Calxeda Midway server (Cortex A-15 cores) and ran
the vdsotest benchmark on it. The results are:
(vdso: times, in nsec/call; n/t: "not tested" (=not implemented))
call 5.2-rc3 5.2-rc3-vdso
clock-gettime-monotonic: 147 142
clock-getres-monotonic: n/t 34
clock-gettime-monotonic-coarse: 90 96
clock-getres-monotonic-coarse: n/t 36
clock-gettime-monotonic-raw: 431 142
clock-getres-monotonic-raw: n/t 35
clock-gettime-tai: 598 150
clock-getres-tai: n/t 34
clock-gettime-boottime: 592 142
clock-getres-boottime: n/t 34
clock-gettime-realtime: 149 142
clock-getres-realtime: n/t 34
clock-gettime-realtime-coarse: 86 96
clock-getres-realtime-coarse: n/t 36
getcpu: n/t n/t
gettimeofday: 133 110

So there are some minor improvements, two minor regressions, some
significant improvements (factor 3-4), and some dramatic improvements
(where we actually gained VDSO support).
Overall a pretty impressive outcome for an "Odd fixes" architecture,
especially as it should reduce the future maintenance burden.

Cheers,
Andre.