Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932688AbcLMBad (ORCPT ); Mon, 12 Dec 2016 20:30:33 -0500 Received: from mail.kernel.org ([198.145.29.136]:54328 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752899AbcLMBab (ORCPT ); Mon, 12 Dec 2016 20:30:31 -0500 Date: Tue, 13 Dec 2016 10:30:20 +0900 From: Masami Hiramatsu To: Marcin Nowakowski Cc: Steven Rostedt , Ingo Molnar , Subject: Re: [PATCH v2 1/2] tracing/kprobes: add a helper method to return number of probe hits Message-Id: <20161213103020.062b47120a14d6a719b83aaa@kernel.org> In-Reply-To: <1481293178-3128-1-git-send-email-marcin.nowakowski@imgtec.com> References: <1481293178-3128-1-git-send-email-marcin.nowakowski@imgtec.com> X-Mailer: Sylpheed 3.5.0 (GTK+ 2.24.30; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2016 Lines: 72 Hello Marcin, On Fri, 9 Dec 2016 15:19:37 +0100 Marcin Nowakowski wrote: > The number of probe hits is stored in a percpu variable and therefore > can't be read directly. Add a helper method trace_kprobe_nhit() that > performs the required calculation. > > It will be used in a follow-up commit that changes kprobe selftests to > verify the number of probe hits. Ah, that's nicer & neet :) Acked-by: Masami Hiramatsu Thanks! > > Signed-off-by: Marcin Nowakowski > --- > kernel/trace/trace_kprobe.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > v2: improved commit message as suggested by Steven Rostedt > > diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c > index eb6c9f1..a2af1bc 100644 > --- a/kernel/trace/trace_kprobe.c > +++ b/kernel/trace/trace_kprobe.c > @@ -73,6 +73,17 @@ static nokprobe_inline bool trace_kprobe_is_on_module(struct trace_kprobe *tk) > return !!strchr(trace_kprobe_symbol(tk), ':'); > } > > +static nokprobe_inline unsigned long trace_kprobe_nhit(struct trace_kprobe *tk) > +{ > + unsigned long nhit = 0; > + int cpu; > + > + for_each_possible_cpu(cpu) > + nhit += *per_cpu_ptr(tk->nhit, cpu); > + > + return nhit; > +} > + > static int register_kprobe_event(struct trace_kprobe *tk); > static int unregister_kprobe_event(struct trace_kprobe *tk); > > @@ -882,14 +893,10 @@ static const struct file_operations kprobe_events_ops = { > static int probes_profile_seq_show(struct seq_file *m, void *v) > { > struct trace_kprobe *tk = v; > - unsigned long nhit = 0; > - int cpu; > - > - for_each_possible_cpu(cpu) > - nhit += *per_cpu_ptr(tk->nhit, cpu); > > seq_printf(m, " %-44s %15lu %15lu\n", > - trace_event_name(&tk->tp.call), nhit, > + trace_event_name(&tk->tp.call), > + trace_kprobe_nhit(tk), > tk->rp.kp.nmissed); > > return 0; > -- > 2.7.4 > -- Masami Hiramatsu