aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm64/kernel/Makefile2
-rw-r--r--kernel/trace/Makefile3
-rw-r--r--kernel/trace/ftrace.c8
-rw-r--r--kernel/trace/trace.c1
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) {