From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [BUGFIX PATCH 1/6] perf/probe: Fix wrong address verification
Date: Fri, 25 Oct 2019 11:28:32 -0300 [thread overview]
Message-ID: <20191025142832.GA15617@kernel.org> (raw)
In-Reply-To: <20191025213633.b1227d0721b97edc8e8f9335@kernel.org>
Em Fri, Oct 25, 2019 at 09:36:33PM +0900, Masami Hiramatsu escreveu:
> Hi,
>
> On Fri, 25 Oct 2019 09:14:48 -0300
> Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
>
> > Em Fri, Oct 25, 2019 at 05:46:25PM +0900, Masami Hiramatsu escreveu:
> > > Since there are some DIE which has only ranges instead of the
> > > combination of entrypc/highpc, address verification must use
> > > dwarf_haspc() instead of dwarf_entrypc/dwarf_highpc.
> > >
> > > Also, the ranges only DIE will have a partial code in different
> > > section (e.g. unlikely code will be in text.unlikely as "FUNC.cold"
> > > symbol). In that case, we can not use dwarf_entrypc() or
> > > die_entrypc(), because the offset from original DIE can be
> > > a minus value.
> > >
> > > Instead, this simply gets the symbol and offset from symtab.
> > >
> > > Without this patch;
> > > # tools/perf/perf probe -D clear_tasks_mm_cpumask:1
> > > Failed to get entry address of clear_tasks_mm_cpumask
> > > Error: Failed to add events.
> > >
> > > And with this patch
> > > # tools/perf/perf probe -D clear_tasks_mm_cpumask:1
> > > p:probe/clear_tasks_mm_cpumask clear_tasks_mm_cpumask+0
> > > p:probe/clear_tasks_mm_cpumask_1 clear_tasks_mm_cpumask+5
> > > p:probe/clear_tasks_mm_cpumask_2 clear_tasks_mm_cpumask+8
> > > p:probe/clear_tasks_mm_cpumask_3 clear_tasks_mm_cpumask+16
> > > p:probe/clear_tasks_mm_cpumask_4 clear_tasks_mm_cpumask+82
> >
> > Ok, so this just asks for the definition, but doesn't try to actually
> > _use_ it, which I did and it fails:
> >
> > [root@quaco tracebuffer]# perf probe -D clear_tasks_mm_cpumask:1
> > p:probe/clear_tasks_mm_cpumask _text+919968
> > p:probe/clear_tasks_mm_cpumask_1 _text+919973
> > p:probe/clear_tasks_mm_cpumask_2 _text+919976
> > [root@quaco tracebuffer]#
> > [root@quaco tracebuffer]# perf probe clear_tasks_mm_cpumask
> > Probe point 'clear_tasks_mm_cpumask' not found.
> > Error: Failed to add events.
> > [root@quaco tracebuffer]#
> >
> > So I'll tentatively continue to apply the other patches in this series,
> > maybe one of them will fix this.
>
> Yes, it should be fixed by [2/6] :)
Yeah, it is, works there, but unfortunately I couldn't see it in action
even having put it successfuly into place:
[root@quaco ~]# perf probe clear_tasks_mm_cpumask:0
Added new event:
probe:clear_tasks_mm_cpumask (on clear_tasks_mm_cpumask)
You can now use it in all perf tools, such as:
perf record -e probe:clear_tasks_mm_cpumask -aR sleep 1
[root@quaco ~]# perf trace -e probe:clear_tasks_mm_cpumask/max-stack=16/
Doesn't seem to be used in x86-64...
[acme@quaco perf]$ find . -name "*.c" | xargs grep clear_tasks_mm_cpumask
./kernel/cpu.c: * clear_tasks_mm_cpumask - Safely clear tasks' mm_cpumask for a CPU
./kernel/cpu.c:void clear_tasks_mm_cpumask(int cpu)
./arch/xtensa/kernel/smp.c: clear_tasks_mm_cpumask(cpu);
./arch/csky/kernel/smp.c: clear_tasks_mm_cpumask(cpu);
./arch/sh/kernel/smp.c: clear_tasks_mm_cpumask(cpu);
./arch/arm/kernel/smp.c: clear_tasks_mm_cpumask(cpu);
./arch/powerpc/mm/nohash/mmu_context.c: clear_tasks_mm_cpumask(cpu);
[acme@quaco perf]$ find . -name "*.h" | xargs grep clear_tasks_mm_cpumask
./include/linux/cpu.h:void clear_tasks_mm_cpumask(int cpu);
[acme@quaco perf]$
:-)
> Actually, a probe point with offset line and no-offset are handled
> a bit differently.
What is the difference? Anyway, things seem to work as advertised, so
I'm happy ;-)
- Arnaldo
next prev parent reply other threads:[~2019-10-25 14:28 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-25 8:46 [BUGFIX PATCH 0/6] perf/probe: Additional fixes for range only functions Masami Hiramatsu
2019-10-25 8:46 ` [BUGFIX PATCH 1/6] perf/probe: Fix wrong address verification Masami Hiramatsu
2019-10-25 12:14 ` Arnaldo Carvalho de Melo
2019-10-25 12:36 ` Masami Hiramatsu
2019-10-25 14:28 ` Arnaldo Carvalho de Melo [this message]
2019-11-12 11:18 ` [tip: perf/core] perf probe: " tip-bot2 for Masami Hiramatsu
2019-10-25 8:46 ` [BUGFIX PATCH 2/6] perf/probe: Fix to probe a function which has no entry pc Masami Hiramatsu
2019-11-12 11:18 ` [tip: perf/core] perf probe: " tip-bot2 for Masami Hiramatsu
2019-10-25 8:46 ` [BUGFIX PATCH 3/6] perf/probe: Fix to probe an inline " Masami Hiramatsu
2019-10-25 14:35 ` Arnaldo Carvalho de Melo
2019-10-25 14:39 ` Arnaldo Carvalho de Melo
2019-10-26 8:04 ` Masami Hiramatsu
2019-11-12 11:18 ` [tip: perf/core] perf probe: " tip-bot2 for Masami Hiramatsu
2019-10-25 8:46 ` [BUGFIX PATCH 4/6] perf/probe: Fix to list probe event with correct line number Masami Hiramatsu
2019-11-12 11:18 ` [tip: perf/core] perf probe: " tip-bot2 for Masami Hiramatsu
2019-10-25 8:47 ` [BUGFIX PATCH 5/6] perf/probe: Fix to show inlined function callsite without entry_pc Masami Hiramatsu
2019-11-12 11:18 ` [tip: perf/core] perf probe: " tip-bot2 for Masami Hiramatsu
2019-10-25 8:47 ` [BUGFIX PATCH 6/6] perf/probe: Fix to show ranges of variables in functions " Masami Hiramatsu
2019-11-12 11:18 ` [tip: perf/core] perf probe: " 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=20191025142832.GA15617@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 \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox