From mboxrd@z Thu Jan 1 00:00:00 1970 From: nils.carlson@ludd.ltu.se (Nils Carlson) Date: Mon, 24 May 2010 16:54:07 +0200 (MEST) Subject: [ltt-dev] PATCH [0/1]: Replace gettimeofday with clock_gettime Message-ID: This patch replaces gettimeofday with clock_gettime(CLOCK_MONOTONIC,) Signed-off-by: Nils Carlson diff --git a/include/ust/clock.h b/include/ust/clock.h index d4b6a9d..bc26d26 100644 --- a/include/ust/clock.h +++ b/include/ust/clock.h @@ -18,6 +18,7 @@ #ifndef UST_CLOCK_H #define UST_CLOCK_H +#include #include #include @@ -25,7 +26,7 @@ /* There are two types of clocks that can be used. - TSC based clock - - gettimeofday() clock + - gettimeofday() clock - to guarantee monotonicity use clock_gettime Microbenchmarks on Linux 2.6.30 on Core2 Duo 3GHz (functions are inlined): Calls (100000000) to tsc(): 4004035641 cycles or 40 cycles/call @@ -41,13 +42,13 @@ static __inline__ u64 trace_clock_read64(void) { - struct timeval tv; + struct timespec ts; u64 retval; - gettimeofday(&tv, NULL); - retval = tv.tv_sec; + clock_gettime(CLOCK_MONOTONIC, &ts); + retval = ts.tv_sec; retval *= 1000000; - retval += tv.tv_usec; + retval += ts.tv_nsec / 1000; return retval; } diff --git a/libust/Makefile.am b/libust/Makefile.am index 2de5857..e357ad1 100644 --- a/libust/Makefile.am +++ b/libust/Makefile.am @@ -27,6 +27,7 @@ libust_la_LDFLAGS = -no-undefined -version-info 0:0:0 libust_la_LIBADD = \ -lpthread \ + -lrt \ $(top_builddir)/snprintf/libustsnprintf.la \ $(top_builddir)/libustcomm/libustcomm.la