tracing: instruct KCOV not to track tracing files
PATCH 2/3 tracing: instruct KCOV not to track tracing files
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.
--- kernel/trace/Makefile | 5 +++++ 1 file changed, 5 insertions(+)
kernel/trace/Makefile +5 -0
@@ -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)
Signature · 1 line
2.19.2
Quoted 23 lines · On Fri, 30 Nov 2018 16:09:35 +0100 Anders Roxell <[email protected]>…
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 <[email protected]>Signed-off-by Arnd Bergmann <[email protected]>Signed-off-by Anders Roxell <[email protected]>--- kernel/trace/Makefile | 5 +++++ 1 file changed, 5 insertions(+)kernel/trace/Makefile +0
-0
kernel/trace/Makefile ifdef CONFIG_FUNCTION_TRACER · line 13
Quoted 8 lines
kernel/trace/Makefile +5
-0@@ -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.
-- Steve
Quoted 3 lines
kernel/trace/Makefile +0
-0ifdef CONFIG_FTRACE_SELFTEST # selftest needs instrumentation CFLAGS_trace_selftest_dynamic.o = $(CC_FLAGS_FTRACE)