X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Fust%2Fclock.h;h=cb8a663ceb229f75ab19cc69db8df4390084f8ea;hb=ca4525b556680256149ead3746b566103e043d8e;hp=d4b6a9ddc1e2768a219beed14d0c6336b4d58b13;hpb=f7b16408b00ecce757bdde940853a48534b25edd;p=ust.git diff --git a/include/ust/clock.h b/include/ust/clock.h index d4b6a9d..cb8a663 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 @@ -34,6 +35,9 @@ For merging traces with the kernel, a time source compatible with that of the kernel is necessary. + Instead of gettimeofday(), we are now using clock_gettime for better + precision and monotonicity. + */ #define TRACE_CLOCK_GENERIC @@ -41,13 +45,13 @@ static __inline__ u64 trace_clock_read64(void) { - struct timeval tv; + struct timespec ts; u64 retval; - gettimeofday(&tv, NULL); - retval = tv.tv_sec; - retval *= 1000000; - retval += tv.tv_usec; + clock_gettime(CLOCK_MONOTONIC, &ts); + retval = ts.tv_sec; + retval *= 1000000000; + retval += ts.tv_nsec; return retval; } @@ -104,7 +108,7 @@ static __inline__ u64 trace_clock_read64(void) static __inline__ u64 trace_clock_frequency(void) { - return 1000000LL; + return 1000000000LL; } static __inline__ u32 trace_clock_freq_scale(void)