public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  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