Re: [PATCH v2] seqlock: mark raw_read_seqcount and read_seqcount_retry as __always_inline
From: Thomas Gleixner
Date: Sun Jun 23 2019 - 07:16:25 EST
On Tue, 11 Jun 2019, Anders Roxell wrote:
> With the function graph tracer, each traced function calls sched_clock()
> to take a timestamp. As sched_clock() uses
> raw_read_seqcount()/read_seqcount_retry(), we must ensure that these
> do not in turn trigger the graph tracer.
> Both functions is marked as inline. However, if CONFIG_OPTIMIZE_INLINING
> is set that may make the two functions tracable which they shouldn't.
>
> Rework so that functions raw_read_seqcount and read_seqcount_retry are
> marked with __always_inline so they will be inlined even if
> CONFIG_OPTIMIZE_INLINING is turned on.
Why just those two? The same issue can happen in other places with other
clocks which can be utilized by the tracer.
Aside of your particular issue, there is no reason why any of those
functions should ever trigger a graph.
Thanks,
tglx