Re: [PATCH v2 0/4] tracing: Add Hardware Latency detector tracer

From: Peter Zijlstra
Date: Fri Aug 19 2016 - 11:06:08 EST


On Fri, Aug 19, 2016 at 10:26:20AM -0400, Steven Rostedt wrote:
> > In any case, for those you could probably use ktime_get_mono_fast_ns().
>
> Is that safe to call from NMI?

It should be, we were very careful to make it so. Also read the comment
with __ktime_get_fast_ns().

> Looking into the code I see:
>
> now = ktime_to_ns(tkr->base) + timekeeping_get_ns(tkr);
>
> where timekeeping_get_ns() has:
>
> timekeeping_get_delta()
>
> which does:
>
> read_seqcount_begin()
>
> which has (eventually):

That's a bug in CONFIG_DEBUG_TIMEKEEPING, if you look at the
!timekeeping_get_delta() it does no such thing.

John, looks like 4ca22c2648f9 ("timekeeping: Add warnings when overflows
or underflows are observed") buggered things.