This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 16/16] linux: Optimize fallback 32-bit clock_getres
- From: Siddhesh Poyarekar <siddhesh at gotplt dot org>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>, libc-alpha at sourceware dot org
- Date: Thu, 2 Jan 2020 18:46:07 +0530
- Subject: Re: [PATCH 16/16] linux: Optimize fallback 32-bit clock_getres
- References: <20191217214728.2886-1-adhemerval.zanella@linaro.org> <20191217214728.2886-16-adhemerval.zanella@linaro.org>
On 18/12/19 3:17 am, Adhemerval Zanella wrote:
> This patch avoid probing the __NR_clock_getttime64 syscall each time
> __clock_gettime64 is issued on a kernel without 64 bit time support.
> Once ENOSYS is obtained, only 32-bit clock_gettime are used.
>
> The following snippet:
>
> clock_getres (CLOCK_REALTIME, &(struct timespec) { 0 });
> clock_getres (CLOCK_MONOTONIC, &(struct timespec) { 0 });
> clock_getres (CLOCK_BOOTTIME, &(struct timespec) { 0 });
> clock_getres (20, &(struct timespec) { 0 });
>
> On a kernel without 64 bit time support issues the syscalls:
>
> syscall_0x196(0, 0xffb83330, [...]) = -1 ENOSYS (Function not implemented)
> clock_getres(CLOCK_REALTIME, {tv_sec=0, tv_nsec=1}) = 0
> clock_getres(CLOCK_MONOTONIC, {tv_sec=0, tv_nsec=1}) = 0
> clock_getres(CLOCK_BOOTTIME, {tv_sec=0, tv_nsec=1}) = 0
>
> Checked on i686-linux-gnu on 4.15 kernel.
> ---
> sysdeps/unix/sysv/linux/clock_getres.c | 16 ++++++++++++----
> 1 file changed, 12 insertions(+), 4 deletions(-)
>
OK.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>