On Fri, 21 Jun 2019 10:52:27 +0100 Vincenzo Frascino vincenzo.frascino@arm.com 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.