[PATCH v7 7/9] ARM: add vdso user-space code
flat view
STALE4460d
From: Nathan Lynch <hidden>
Date: 2014-06-28 21:35:12
On 06/28/2014 03:11 PM, Russell King - ARM Linux wrote:
On Sat, Jun 28, 2014 at 02:45:41PM -0500, Nathan Lynch wrote:quoted
On 06/28/2014 01:12 PM, Russell King - ARM Linux wrote:quoted
I know that I'm probably many years away from it, even if Ubuntu adopt it for something recent - I'm rather stuck with 12.04 due to the move towards requiring 3D GPU acceleration in later versions. It seems that the choices on ARM now are to either have a crippled distro through lack of open GPU support, or stick with an old distro that doesn't require GPUs.Based on other messages from you on the ML I'm assuming you have an i.MX6 system in mind? (Forgive me if I'm wrong.) On any Cortex-A9 or -A8 the VDSO isn't going to be any great benefit anyway. Those CPUs don't implement the generic timers extension, so only clock_gettime() with low-resolution clock ids will see a speedup. And few programs use those, to my knowledge. A15, A7, and I'm pretty sure A12 and A17 all implement the timer extension and will see full benefit. Some Qualcomm CPUs too, I think.Here's the results from vdsotest... yes on iMX6 as that's the most advanced bootable system I have: clock-gettime-monotonic system calls per second: 1601780 clock-gettime-monotonic vdso calls per second: 1600862 (1.00x speedup) clock-getres-monotonic system calls per second: 3001396 clock-getres-monotonic vdso calls per second: 52163259 (17.38x speedup) clock-gettime-monotonic-coarse system calls per second: 2824631 clock-gettime-monotonic-coarse vdso calls per second: 13760820 (4.87x speedup) clock-getres-monotonic-coarse system calls per second: 3166932 clock-getres-monotonic-coarse vdso calls per second: 52111805 (16.45x speedup) clock-gettime-realtime system calls per second: 1596863 clock-gettime-realtime vdso calls per second: 1590424 (1.00x speedup) clock-getres-realtime system calls per second: 2993748 clock-getres-realtime vdso calls per second: 52123753 (17.41x speedup) clock-gettime-realtime-coarse system calls per second: 3007894 clock-gettime-realtime-coarse vdso calls per second: 17081617 (5.68x speedup) clock-getres-realtime-coarse system calls per second: 3072073 clock-getres-realtime-coarse vdso calls per second: 49401452 (16.08x speedup) Note: vDSO version of getcpu not found getcpu system calls per second: 4902323 getcpu vdso calls per second: 4972290 (1.01x speedup) Note: vDSO version of getcpu not found Note: vDSO version of getcpu not found gettimeofday system calls per second: 1637099 gettimeofday vdso calls per second: 1637573 (1.00x speedup)
That's consistent with my results on iMX6. The reported 1.00x "speedup" for clock-gettime-monotonic etc indicates the VDSO is falling back to syscall. Thanks for testing.