mirror of
https://sourceware.org/git/glibc.git
synced 2024-09-20 00:19:57 +00:00
linux: Remove supports_time64 () from clock_getres
It breaks the usage case of live migration like CRIU or similar. The performance drawback is it would require an extra syscall on older kernels without 64-bit time support. Checked on i686-linux-gnu on a 4.15 kernel and on a 5.11 kernel (with and without --enable-kernel=5.1) and on x86_64-linux-gnu. Reviewed-by: Lukasz Majewski <lukma@denx.de>
This commit is contained in:
parent
4c3df0eba5
commit
283c6ebd5a
@ -21,7 +21,6 @@
|
||||
#include <time.h>
|
||||
|
||||
#include <sysdep-vdso.h>
|
||||
#include <time64-support.h>
|
||||
#include <shlib-compat.h>
|
||||
#include <kernel-features.h>
|
||||
|
||||
@ -34,19 +33,14 @@ __clock_getres64 (clockid_t clock_id, struct __timespec64 *res)
|
||||
#ifndef __NR_clock_getres_time64
|
||||
# define __NR_clock_getres_time64 __NR_clock_getres
|
||||
#endif
|
||||
if (supports_time64 ())
|
||||
{
|
||||
|
||||
#ifdef HAVE_CLOCK_GETRES64_VSYSCALL
|
||||
r = INLINE_VSYSCALL (clock_getres_time64, 2, clock_id, res);
|
||||
r = INLINE_VSYSCALL (clock_getres_time64, 2, clock_id, res);
|
||||
#else
|
||||
r = INLINE_SYSCALL_CALL (clock_getres_time64, clock_id, res);
|
||||
r = INLINE_SYSCALL_CALL (clock_getres_time64, clock_id, res);
|
||||
#endif
|
||||
|
||||
if (r == 0 || errno != ENOSYS)
|
||||
return r;
|
||||
|
||||
mark_time64_unsupported ();
|
||||
}
|
||||
if (r == 0 || errno != ENOSYS)
|
||||
return r;
|
||||
|
||||
#ifndef __ASSUME_TIME64_SYSCALLS
|
||||
/* Fallback code that uses 32-bit support. */
|
||||
|
Loading…
Reference in New Issue
Block a user