lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191025213633.b1227d0721b97edc8e8f9335@kernel.org>
Date:   Fri, 25 Oct 2019 21:36:33 +0900
From:   Masami Hiramatsu <mhiramat@...nel.org>
To:     Arnaldo Carvalho de Melo <acme@...nel.org>
Cc:     Jiri Olsa <jolsa@...hat.com>, Namhyung Kim <namhyung@...nel.org>,
        linux-kernel@...r.kernel.org
Subject: Re: [BUGFIX PATCH 1/6] perf/probe: Fix wrong address verification

Hi,

On Fri, 25 Oct 2019 09:14:48 -0300
Arnaldo Carvalho de Melo <acme@...nel.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@...co 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@...co tracebuffer]#
> [root@...co tracebuffer]# perf probe clear_tasks_mm_cpumask
> Probe point 'clear_tasks_mm_cpumask' not found.
>   Error: Failed to add events.
> [root@...co 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] :)

Actually, a probe point with offset line and no-offset are handled
a bit differently.

Thank you,

-- 
Masami Hiramatsu <mhiramat@...nel.org>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ