All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Alexandre Ghiti <alex@ghiti.fr>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [BUGFIX PATCH] perf probe: Do not depend on dwfl_module_addrsym()
Date: Mon, 9 Mar 2020 10:44:30 -0300	[thread overview]
Message-ID: <20200309134430.GE477@kernel.org> (raw)
In-Reply-To: <20200228085238.84d53d6b753efb4cc18d20cb@kernel.org>

Em Fri, Feb 28, 2020 at 08:52:38AM +0900, Masami Hiramatsu escreveu:
> On Thu, 27 Feb 2020 17:20:39 +0100
> Alexandre Ghiti <alex@ghiti.fr> wrote:
> 
> > On 2/27/20 4:42 PM, Masami Hiramatsu wrote:
> > > Do not depend on dwfl_module_addrsym() because it can fail
> > > on user-space shared libraries.
> > > 
> > > Actually, same bug was fixed by commit 664fee3dc379 ("perf
> > > probe: Do not use dwfl_module_addrsym if dwarf_diename finds
> > > symbol name"), but commit 07d369857808 ("perf probe: Fix
> > > wrong address verification) reverted to get actual symbol
> > > address from symtab.
> > > 
> > > This fixes it again by getting symbol address from DIE,
> > > and only if the DIE has only address range, it uses
> > > dwfl_module_addrsym().
> > > 
> > > Fixes: 07d369857808 ("perf probe: Fix wrong address verification)
> > > Reported-by: Alexandre Ghiti <alex@ghiti.fr>
> > > Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
> > > ---
> > >   tools/perf/util/probe-finder.c |   11 ++++++++---
> > >   1 file changed, 8 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
> > > index 1c817add6ca4..e4cff49384f4 100644
> > > --- a/tools/perf/util/probe-finder.c
> > > +++ b/tools/perf/util/probe-finder.c
> > > @@ -637,14 +637,19 @@ static int convert_to_trace_point(Dwarf_Die *sp_die, Dwfl_Module *mod,
> > >   		return -EINVAL;
> > >   	}
> > >   
> > > -	/* Try to get actual symbol name from symtab */
> > > -	symbol = dwfl_module_addrsym(mod, paddr, &sym, NULL);
> > > +	if (dwarf_entrypc(sp_die, &eaddr) == 0) {
> > > +		/* If the DIE has entrypc, use it. */
> > > +		symbol = dwarf_diename(sp_die);
> > > +	} else {
> > > +		/* Try to get actual symbol name and address from symtab */
> > > +		symbol = dwfl_module_addrsym(mod, paddr, &sym, NULL);
> > > +		eaddr = sym.st_value;
> > > +	}
> > >   	if (!symbol) {
> > >   		pr_warning("Failed to find symbol at 0x%lx\n",
> > >   			   (unsigned long)paddr);
> > >   		return -ENOENT;
> > >   	}
> > > -	eaddr = sym.st_value;
> > >   
> > >   	tp->offset = (unsigned long)(paddr - eaddr);
> > >   	tp->address = (unsigned long)paddr;
> > > 
> > 
> > I have just tested your patch, that fixes the issue, so you can add:
> > 
> > Tested-by: Alexandre Ghiti <alex@ghiti.fr>
> 
> Thanks Alexandre,
> Arnaldo, could you also pick this for fix?


Thanks, applied.

- Arnaldo

  reply	other threads:[~2020-03-09 13:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-27 12:23 Perf tool regression from 07d369857808 Alexandre Ghiti
2020-02-27 15:25 ` Masami Hiramatsu
2020-02-27 15:42   ` [BUGFIX PATCH] perf probe: Do not depend on dwfl_module_addrsym() Masami Hiramatsu
2020-02-27 16:20     ` Alexandre Ghiti
2020-02-27 23:52       ` Masami Hiramatsu
2020-03-09 13:44         ` Arnaldo Carvalho de Melo [this message]
2020-03-19 14:04     ` [tip: perf/urgent] " 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=20200309134430.GE477@kernel.org \
    --to=arnaldo.melo@gmail.com \
    --cc=alex@ghiti.fr \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.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 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.