Message ID | 20181130150935.27493-1-anders.roxell@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/3] stackleak: mark stackleak_track_stack() as notrace | expand |
On Fri, 30 Nov 2018 16:09:35 +0100 Anders Roxell <anders.roxell@linaro.org> wrote: > When we have KCOV enabled and running ftrace startup tests we end up in > a softlockup. Kcov and ftrace tracing each other makes it really slow: > > [ 275.141388] Testing tracer wakeup_dl: PASSED > [ 304.738345] Testing tracer function_graph: > [ 716.236822] watchdog: BUG: soft lockup - CPU#0 stuck for 21s! [ksoftirqd/0:9] > > Rework so that we don't let KCOV look at tracing files. Could probably > be more selective here, but in in general letting KCOV and ftrace check > each isn't the best idea. > > Co-developed-by: Arnd Bergmann <arnd@arndb.de> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Signed-off-by: Anders Roxell <anders.roxell@linaro.org> > --- > kernel/trace/Makefile | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile > index f81dadbc7c4a..c7c73b976103 100644 > --- a/kernel/trace/Makefile > +++ b/kernel/trace/Makefile > @@ -6,6 +6,11 @@ ifdef CONFIG_FUNCTION_TRACER > ORIG_CFLAGS := $(KBUILD_CFLAGS) > KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) > > +# If instrumentation of this dir is enabled, the function tracer gets really > +# slow. Probably could be more selective here, but note that files related > +# to tracing.shouldn't be traced anyway. > +KCOV_INSTRUMENT := n > + The entire directory is also set to not be traced by function tracing, which also is a bit overkill, as there's functions in this directory that can (and probably should) be. Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> -- Steve > ifdef CONFIG_FTRACE_SELFTEST > # selftest needs instrumentation > CFLAGS_trace_selftest_dynamic.o = $(CC_FLAGS_FTRACE)
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile index f81dadbc7c4a..c7c73b976103 100644 --- a/kernel/trace/Makefile +++ b/kernel/trace/Makefile @@ -6,6 +6,11 @@ ifdef CONFIG_FUNCTION_TRACER ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) +# If instrumentation of this dir is enabled, the function tracer gets really +# slow. Probably could be more selective here, but note that files related +# to tracing.shouldn't be traced anyway. +KCOV_INSTRUMENT := n + ifdef CONFIG_FTRACE_SELFTEST # selftest needs instrumentation CFLAGS_trace_selftest_dynamic.o = $(CC_FLAGS_FTRACE)