There are occasional very very long (30..60 sec) delays happening when calling
gettimeofday() vsyscall on x86_64 with 2.6.14-rt22 kernel.
These delays come from while() looping over invalid data that are
going to be discarded by seqlock.
arch/x86_64/kernel/vsyscall.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
Index: linux/arch/x86_64/kernel/vsyscall.c
===================================================================
--- linux.orig/arch/x86_64/kernel/vsyscall.c
+++ linux/arch/x86_64/kernel/vsyscall.c
@@ -111,14 +111,15 @@ static force_inline void do_vgettimeofda
/* add nsec offset to wall_time_tv */
*tv = __vsyscall_gtod_data.wall_time_tv;
- do_div(nsec_delta, NSEC_PER_USEC);
- tv->tv_usec += (unsigned long) nsec_delta;
-
- while (tv->tv_usec > USEC_PER_SEC) {
- tv->tv_sec += 1;
- tv->tv_usec -= USEC_PER_SEC;
- }
} while (read_seqretry(&__vsyscall_gtod_lock, seq));
+
+ do_div(nsec_delta, NSEC_PER_USEC);
+ tv->tv_usec += (unsigned long) nsec_delta;
+
+ while (tv->tv_usec > USEC_PER_SEC) {
+ tv->tv_sec += 1;
+ tv->tv_usec -= USEC_PER_SEC;
+ }
}
/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]