From: Mathieu Desnoyers Date: Thu, 6 Oct 2016 11:45:35 +0000 (-0400) Subject: Fix: show warning for broken clock work-around X-Git-Tag: v2.9.0-rc1~2 X-Git-Url: http://git.liburcu.org/?p=lttng-modules.git;a=commitdiff_plain;h=254adeb07f36a347cfe50e9eb9f8fb211e0dcaba Fix: show warning for broken clock work-around Signed-off-by: Mathieu Desnoyers --- diff --git a/wrapper/trace-clock.c b/wrapper/trace-clock.c index 23869ca8..d9bc956a 100644 --- a/wrapper/trace-clock.c +++ b/wrapper/trace-clock.c @@ -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 diff --git a/wrapper/trace-clock.h b/wrapper/trace-clock.h index 649c93f3..14d41afc 100644 --- a/wrapper/trace-clock.h +++ b/wrapper/trace-clock.h @@ -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);