[PATCH v2 0/3] arm_arch_timer: VDSO preparation, code consolidation
From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2014-09-24 15:04:23
Also in:
lkml
On Wed, Sep 24, 2014 at 03:52:57PM +0100, Russell King - ARM Linux wrote:
On Wed, Sep 24, 2014 at 03:45:41PM +0100, Catalin Marinas wrote:quoted
On Mon, Sep 22, 2014 at 11:30:23PM +0100, Russell King - ARM Linux wrote:quoted
I raised a while back with Will whether there's much point to having this on ARM. While it's useful for virtualisation, the majority of 32-bit ARM doesn't run virtualised.This has nothing to do with virtualisation. The main reason we use CNTVCT is to not require kernel binary differences when running the OS as host or guest. But it does _not_ mean that it is only used when running as a guest.quoted
So there's little point in having the VDSO on the majority of platforms - it will just add additional unnecessary cycles slowing down the system calls that the VDSO is designed to try to speed up.A good reason for VDSO is to avoid a system call for gettimeofday when you can read the clocks source from user space. That's a significant improvement on CPUs like A7, A15.I'm *not* arguing against having a VDSO to speed up that crap. What I'm trying to get to the bottom of - something which has been totally lost sight of - is what the friggin effect of this stuff is on CPUs *without* the architected timer. Until I get an answer to what the measured effect is, I'm saying no to VDSO on ARM, because - as seems to be the norm - the evaluation job is only half done.
I agree. If there is an overhead (possibly), I think it can be solved in software maybe by having two VDSO images, one with gettimeofday and one without. If it's only gettimeofday in VDSO (and signal return still via the vectors page), we could just avoid inserting it into the user address space when arch timers aren't present. On arm64 we expect the presence of the arch timer and didn't bother with such scenarios. -- Catalin