This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Loss of vDSO support on s390x
* Siddhesh Poyarekar:
> On 15/01/20 3:20 pm, Florian Weimer wrote:
>> time, gettimeofday, and clock_gettime always seem to make system calls
>> now.
>>
>> Is this intentional? I'm worried that this is a major performance
>> regression.
>
> +Adhemerval; this may be related to the vDSO patchset.
The kernel I used disables the vDSO with an explicit loader invocation.
I assume this was fixed with this commit:
commit 404861e15b5fa7edbab22400f9174c1a21fde731
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date: Wed Aug 7 14:31:59 2019 +0200
s390/vdso: map vdso also for statically linked binaries
s390 does not map the vdso for statically linked binaries, assuming
that this doesn't make sense. See commit fc5243d98ac2 ("[S390]
arch_setup_additional_pages arguments").
However with glibc commit d665367f596d ("linux: Enable vDSO for static
linking as default (BZ#19767)") and commit 5e855c895401 ("s390: Enable
VDSO for static linking") the vdso is also used for statically linked
binaries - if the kernel would make it available.
Therefore map the vdso always, just like all other architectures.
If I fix this, by hardcoding the new loader, I only see a system call
for the time emulation. It looks like the vDSO does not have
acceleration for CLOCK_REALTIME_COARSE, which is used by the time
emulation.
I still think this needs to be fixed.
Thanks,
Florian