Fix: show warning for broken clock work-around
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 6 Oct 2016 11:45:35 +0000 (07:45 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 6 Oct 2016 11:47:55 +0000 (07:47 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
wrapper/trace-clock.c
wrapper/trace-clock.h

index 23869ca831a79069d0f6336c5df1b2d834449919..d9bc956acb44c70c140520abea0340f1fe13702b 100644 (file)
@@ -27,3 +27,7 @@
 DEFINE_PER_CPU(local_t, lttng_last_tsc);
 EXPORT_PER_CPU_SYMBOL(lttng_last_tsc);
 #endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
+
+#ifdef LTTNG_CLOCK_NMI_SAFE_BROKEN
+#warning "Your kernel implements a bogus nmi-safe clock source. Falling back to the non-nmi-safe clock source, which discards events traced from NMI context. Upgrade your kernel to resolve this situation."
+#endif
index 649c93f358d62c9bcede2cd33bd3f890ffa412ab..14d41afc79b14c3d26e7a9a4a119afb57b59918b 100644 (file)
@@ -52,11 +52,15 @@ extern struct lttng_trace_clock *lttng_trace_clock;
  * CONFIG_DEBUG_TIMEKEEPING") introduces a buggy ktime_get_mono_fast_ns().
  * This is fixed by patch "timekeeping: Fix __ktime_get_fast_ns() regression".
  */
+#if (LTTNG_KERNEL_RANGE(4,8,0, 4,8,1) \
+       || LTTNG_KERNEL_RANGE(4,7,4, 4,7,7) \
+       || LTTNG_KERNEL_RANGE(4,4,20, 4,4,24) \
+       || LTTNG_KERNEL_RANGE(4,1,32, 4,1,34))
+#define LTTNG_CLOCK_NMI_SAFE_BROKEN
+#endif
+
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0) \
-       && !LTTNG_KERNEL_RANGE(4,8,0, 4,8,1) \
-       && !LTTNG_KERNEL_RANGE(4,7,4, 4,7,7) \
-       && !LTTNG_KERNEL_RANGE(4,4,20, 4,4,24) \
-       && !LTTNG_KERNEL_RANGE(4,1,32, 4,1,34))
+       && !defined(LTTNG_CLOCK_NMI_SAFE_BROKEN))
 
 DECLARE_PER_CPU(local_t, lttng_last_tsc);
 
This page took 0.027369 seconds and 4 git commands to generate.