From 45639d9644a3245466b8a2ba239ce49d50c9c474 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 26 Nov 2013 11:57:40 -0800 Subject: [PATCH] stapdyn: Use plain CLOCK_MONOTONIC for -t timing CLOCK_MONOTONIC_RAW has immunity to adjtime and NTP, but CLOCK_MONOTONIC is often implemented in vdso. For simple timing, it's worth trading a little accuracy for lower overhead. --- tapsets.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tapsets.cxx b/tapsets.cxx index f33faa723..7927106b4 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -123,7 +123,7 @@ common_probe_entryfn_prologue (systemtap_session& s, else { s.op->newline() << "struct timespec timespec_atstart;"; - s.op->newline() << "(void)clock_gettime(CLOCK_MONOTONIC_RAW, ×pec_atstart);"; + s.op->newline() << "(void)clock_gettime(CLOCK_MONOTONIC, ×pec_atstart);"; } s.op->newline() << "#endif"; @@ -262,7 +262,7 @@ common_probe_entryfn_epilogue (systemtap_session& s, { s.op->newline() << "struct timespec timespec_atend, timespec_elapsed;"; s.op->newline() << "long cycles_elapsed;"; - s.op->newline() << "(void)clock_gettime(CLOCK_MONOTONIC_RAW, ×pec_atend);"; + s.op->newline() << "(void)clock_gettime(CLOCK_MONOTONIC, ×pec_atend);"; s.op->newline() << "_stp_timespec_sub(×pec_atend, ×pec_atstart, ×pec_elapsed);"; // 'cycles_elapsed' is really elapsed nanoseconds s.op->newline() << "cycles_elapsed = (timespec_elapsed.tv_sec * NSEC_PER_SEC) + timespec_elapsed.tv_nsec;"; -- 2.43.5