aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_uprobe.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2013-01-31 13:55:27 -0500
committerOleg Nesterov <oleg@redhat.com>2013-02-08 12:24:34 -0500
commit1b47aefd9b6bd439a4be43c47acd22987ac22db8 (patch)
treea3d0a40ce94f7e57d4375a77a0c74c0001b4bb67 /kernel/trace/trace_uprobe.c
parenta932b7381f81235530c3d0acbd3ba2c7537d78e5 (diff)
uprobes/perf: Always increment trace_uprobe->nhit
Move tu->nhit++ from uprobe_trace_func() to uprobe_dispatcher(). ->nhit counts how many time we hit the breakpoint inserted by this uprobe, we do not want to loose this info if uprobe was enabled by sys_perf_event_open(). Signed-off-by: Oleg Nesterov <oleg@redhat.com> Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/trace/trace_uprobe.c')
-rw-r--r--kernel/trace/trace_uprobe.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
index 9c8babbfd11b..c4e29e19fdd7 100644
--- a/kernel/trace/trace_uprobe.c
+++ b/kernel/trace/trace_uprobe.c
@@ -476,8 +476,6 @@ static void uprobe_trace_func(struct trace_uprobe *tu, struct pt_regs *regs)
476 unsigned long irq_flags; 476 unsigned long irq_flags;
477 struct ftrace_event_call *call = &tu->call; 477 struct ftrace_event_call *call = &tu->call;
478 478
479 tu->nhit++;
480
481 local_save_flags(irq_flags); 479 local_save_flags(irq_flags);
482 pc = preempt_count(); 480 pc = preempt_count();
483 481
@@ -701,6 +699,7 @@ static int uprobe_dispatcher(struct uprobe_consumer *con, struct pt_regs *regs)
701 struct trace_uprobe *tu; 699 struct trace_uprobe *tu;
702 700
703 tu = container_of(con, struct trace_uprobe, consumer); 701 tu = container_of(con, struct trace_uprobe, consumer);
702 tu->nhit++;
704 703
705 if (tu->flags & TP_FLAG_TRACE) 704 if (tu->flags & TP_FLAG_TRACE)
706 uprobe_trace_func(tu, regs); 705 uprobe_trace_func(tu, regs);