diff options
-rw-r--r-- | arch/arm64/kernel/Makefile | 2 | ||||
-rw-r--r-- | kernel/trace/Makefile | 3 | ||||
-rw-r--r-- | kernel/trace/ftrace.c | 8 | ||||
-rw-r--r-- | kernel/trace/trace.c | 1 |
4 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 4c8b13bede80..78c17745f354 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -7,6 +7,8 @@ CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET) AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) CFLAGS_armv8_deprecated.o := -I$(src) +#KCOV_INSTRUMENT := n + CFLAGS_REMOVE_ftrace.o = -pg CFLAGS_REMOVE_insn.o = -pg CFLAGS_REMOVE_return_address.o = -pg diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile index f81dadbc7c4a..d8112dcd8d89 100644 --- a/kernel/trace/Makefile +++ b/kernel/trace/Makefile @@ -2,6 +2,9 @@ # Do not instrument the tracer itself: +#KCOV_INSTRUMENT_trace.o := n +#KCOV_INSTRUMENT_ftrace.o := n + ifdef CONFIG_FUNCTION_TRACER ORIG_CFLAGS := $(KBUILD_CFLAGS) KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 9c29d1d105db..d37604ee370a 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -2419,17 +2419,20 @@ void __weak ftrace_replace_code(int enable) { struct dyn_ftrace *rec; struct ftrace_page *pg; - int failed; + int failed, loop_counter = 0; if (unlikely(ftrace_disabled)) return; + printk("%s: %d", __func__, enable); + do_for_each_ftrace_rec(pg, rec) { /* This loop can take minutes when sanitizers are enabled, so * lets make sure we allow RCU processing. */ cond_resched(); + ++loop_counter; if (rec->flags & FTRACE_FL_DISABLED) continue; @@ -2440,6 +2443,7 @@ void __weak ftrace_replace_code(int enable) return; } } while_for_each_ftrace_rec(); + printk("%s:%d, loop_counter: %d\n", __FILE__, __LINE__, loop_counter); } struct ftrace_rec_iter { @@ -2565,7 +2569,9 @@ void ftrace_modify_all_code(int command) * traced. */ if (update) { + //printk("%s:%d\n", __FILE__, __LINE__); err = ftrace_update_ftrace_func(ftrace_ops_list_func); + //printk("%s:%d\n", __FILE__, __LINE__); if (FTRACE_WARN_ON(err)) return; } diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 5706599ed534..23e714ff19bd 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1547,6 +1547,7 @@ static __init int init_trace_selftests(void) pr_info("Running postponed tracer tests:\n"); list_for_each_entry_safe(p, n, &postponed_selftests, list) { + //cond_resched(); ret = run_tracer_selftest(p->type); /* If the test fails, then warn and remove from available_tracers */ if (ret < 0) { |