From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>, Jiri Olsa <jolsa@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] perf/probe: Skip same probe address
Date: Fri, 20 Sep 2019 15:26:46 -0300 [thread overview]
Message-ID: <20190920182646.GC4865@kernel.org> (raw)
In-Reply-To: <156886447061.10772.4261569305869149178.stgit@devnote2>
Em Thu, Sep 19, 2019 at 12:41:10PM +0900, Masami Hiramatsu escreveu:
> Fix to skip making a same probe address on given line.
>
> Since dwarf line info contains several entries for one line
> with different column, perf probe will make a different
> probe on same address if user specifies a probe point by
> "function:line" or "file:line".
>
> e.g.
> $ perf probe -D kernel_read:8
> p:probe/kernel_read_L8 kernel_read+39
> p:probe/kernel_read_L8_1 kernel_read+39
>
> This skips such duplicated probe address.
Thanks, applied to perf/urgent.
- Arnaldo
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> ---
> tools/perf/util/probe-finder.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
> index 025fc4491993..02ca95deaf2c 100644
> --- a/tools/perf/util/probe-finder.c
> +++ b/tools/perf/util/probe-finder.c
> @@ -1244,6 +1244,17 @@ static int expand_probe_args(Dwarf_Die *sc_die, struct probe_finder *pf,
> return n;
> }
>
> +static bool trace_event_finder_overlap(struct trace_event_finder *tf)
> +{
> + int i;
> +
> + for (i = 0; i < tf->ntevs; i++) {
> + if (tf->pf.addr == tf->tevs[i].point.address)
> + return true;
> + }
> + return false;
> +}
> +
> /* Add a found probe point into trace event list */
> static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
> {
> @@ -1254,6 +1265,14 @@ static int add_probe_trace_event(Dwarf_Die *sc_die, struct probe_finder *pf)
> struct perf_probe_arg *args = NULL;
> int ret, i;
>
> + /*
> + * For some reason (e.g. different column assigned to same address)
> + * This callback can be called with the address which already passed.
> + * Ignore it first.
> + */
> + if (trace_event_finder_overlap(tf))
> + return 0;
> +
> /* Check number of tevs */
> if (tf->ntevs == tf->max_tevs) {
> pr_warning("Too many( > %d) probe point found.\n",
--
- Arnaldo
next prev parent reply other threads:[~2019-09-20 18:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-19 3:41 [PATCH] perf/probe: Skip same probe address Masami Hiramatsu
2019-09-20 18:26 ` Arnaldo Carvalho de Melo [this message]
2019-09-22 10:52 ` [tip: perf/urgent] perf probe: Skip same probe address for a given line tip-bot2 for Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190920182646.GC4865@kernel.org \
--to=arnaldo.melo@gmail.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=namhyung@kernel.org \
--cc=wangnan0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.