diff options
author | Minfei Huang <mnfhuang@gmail.com> | 2015-09-16 12:19:42 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2015-10-22 15:44:24 -0400 |
commit | 883a1e867e0fe7c2dc2e5844ef692f80177631d5 (patch) | |
tree | af404d70021b6563ae8df94726e441e85511298a | |
parent | 3061692921f2d701bb09699d16ed780903dd54e2 (diff) |
ftrace: Calculate the correct dyn_ftrace number to report to the userspace
Now, ftrace only calculate the dyn_ftrace number in the adding
breakpoint loop, not in adding update and finish update loop.
Calculate the correct dyn_ftrace, once ftrace reports the failure message
to the userspace.
Link: http://lkml.kernel.org/r/1442420382-13130-1-git-send-email-mnfhuang@gmail.com
Signed-off-by: Minfei Huang <mnfhuang@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | arch/x86/kernel/ftrace.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c index 8b7b0a51e742..311bcf338f07 100644 --- a/arch/x86/kernel/ftrace.c +++ b/arch/x86/kernel/ftrace.c | |||
@@ -556,6 +556,7 @@ void ftrace_replace_code(int enable) | |||
556 | run_sync(); | 556 | run_sync(); |
557 | 557 | ||
558 | report = "updating code"; | 558 | report = "updating code"; |
559 | count = 0; | ||
559 | 560 | ||
560 | for_ftrace_rec_iter(iter) { | 561 | for_ftrace_rec_iter(iter) { |
561 | rec = ftrace_rec_iter_record(iter); | 562 | rec = ftrace_rec_iter_record(iter); |
@@ -563,11 +564,13 @@ void ftrace_replace_code(int enable) | |||
563 | ret = add_update(rec, enable); | 564 | ret = add_update(rec, enable); |
564 | if (ret) | 565 | if (ret) |
565 | goto remove_breakpoints; | 566 | goto remove_breakpoints; |
567 | count++; | ||
566 | } | 568 | } |
567 | 569 | ||
568 | run_sync(); | 570 | run_sync(); |
569 | 571 | ||
570 | report = "removing breakpoints"; | 572 | report = "removing breakpoints"; |
573 | count = 0; | ||
571 | 574 | ||
572 | for_ftrace_rec_iter(iter) { | 575 | for_ftrace_rec_iter(iter) { |
573 | rec = ftrace_rec_iter_record(iter); | 576 | rec = ftrace_rec_iter_record(iter); |
@@ -575,6 +578,7 @@ void ftrace_replace_code(int enable) | |||
575 | ret = finish_update(rec, enable); | 578 | ret = finish_update(rec, enable); |
576 | if (ret) | 579 | if (ret) |
577 | goto remove_breakpoints; | 580 | goto remove_breakpoints; |
581 | count++; | ||
578 | } | 582 | } |
579 | 583 | ||
580 | run_sync(); | 584 | run_sync(); |