diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-09-06 20:22:37 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-09-06 20:22:37 -0400 |
commit | d53a73acdbf6ac6eb99cd06f5dd695da58d9e8f5 (patch) | |
tree | 065eca94bcea3f9d0559be0565263ffda8ec333c | |
parent | 42a36f6670797912fa4c2b0e0cb3792e88c1a3bc (diff) | |
download | glibc-d53a73acdbf6ac6eb99cd06f5dd695da58d9e8f5.tar.gz glibc-d53a73acdbf6ac6eb99cd06f5dd695da58d9e8f5.tar.xz glibc-d53a73acdbf6ac6eb99cd06f5dd695da58d9e8f5.zip |
Avoid gettimeofday vsyscall
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/getsysstats.c | 22 |
2 files changed, 8 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog index fd78d99289..32e74d7d86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-09-06 Ulrich Drepper <drepper@gmail.com> + + * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Don't use + gettimeofday vsyscall, just use time. + 2011-09-06 Andreas Schwab <schwab@redhat.com> * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c [!SHARED]: Include diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c index b9bae3df98..7feb7a1802 100644 --- a/sysdeps/unix/sysv/linux/getsysstats.c +++ b/sysdeps/unix/sysv/linux/getsysstats.c @@ -37,15 +37,6 @@ #include <not-cancel.h> #include <kernel-features.h> -#ifndef HAVE_CLOCK_GETTIME_VSYSCALL -# undef INTERNAL_VSYSCALL -# define INTERNAL_VSYSCALL INTERNAL_SYSCALL -# undef INLINE_VSYSCALL -# define INLINE_VSYSCALL INLINE_SYSCALL -#else -# include <bits/libc-vdso.h> -#endif - /* How we can determine the number of available processors depends on the configuration. There is currently (as of version 2.0.21) no @@ -141,17 +132,10 @@ __get_nprocs () static int cached_result; static time_t timestamp; -#ifdef __ASSUME_POSIX_TIMERS - struct timespec ts; - INTERNAL_SYSCALL_DECL (err); - INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, &ts); -#else - struct timeval ts; - __gettimeofday (&ts, NULL); -#endif + time_t now = time (NULL); time_t prev = timestamp; atomic_read_barrier (); - if (ts.tv_sec == prev) + if (now == prev) return cached_result; /* XXX Here will come a test for the new system call. */ @@ -243,7 +227,7 @@ __get_nprocs () out: cached_result = result; atomic_write_barrier (); - timestamp = ts.tv_sec; + timestamp = now; return result; } |