[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <52F35AF9.4050505@hitachi.com>
Date: Thu, 06 Feb 2014 18:50:49 +0900
From: Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
To: Namhyung Kim <namhyung@...nel.org>
Cc: Arnaldo Carvalho de Melo <acme@...stprotocols.net>,
Srikar Dronamraju <srikar@...ux.vnet.ibm.com>,
David Ahern <dsahern@...il.com>, linux-kernel@...r.kernel.org,
"Steven Rostedt (Red Hat)" <rostedt@...dmis.org>,
Oleg Nesterov <oleg@...hat.com>,
Ingo Molnar <mingo@...hat.com>,
"David A. Long" <dave.long@...aro.org>,
yrl.pp-manager.tt@...achi.com
Subject: Re: [PATCH -tip ] [BUGFIX/URGENT] perf-probe: Do not add offset to
uprobe address
(2014/02/06 16:48), Namhyung Kim wrote:
> Hi Masami,
>
> On Wed, 05 Feb 2014 05:18:58 +0000, Masami Hiramatsu wrote:
>> Fix perf-probe not to add offset value to uprobe probe
>> address when post processing.
>> tevs[i].point.address is the address of symbol+offset,
>> but current perf-probe adjusts the point.address by
>> adding the offset. As a result, the probe address becomes
>> symbol+offset+offset. This may cause unexpected
>> code corruption. Urgent fix is needed.
>>
>> Without this fix
>> ---
>> # ./perf probe -x ./perf dso__load_vmlinux+4
>> # ./perf probe -l
>> probe_perf:dso__load_vmlinux (on 0x000000000006d2b8)
>> # nm ./perf.orig | grep dso__load_vmlinux\$
>> 000000000046d0a0 T dso__load_vmlinux
>
> Shouldn't the original symbol address be
>
> 000000000046d2b0
Oops, Yes, I missed my ./perf and ./perf.orig...
Since the uprobe doesn't track binary change, I usually use a
copy of original binary. Here is the correct test results;
Without this fix
---
# ./perf probe -x ./perf.orig dso__load_vmlinux+4
# ./perf probe -l
probe_perf:dso__load_vmlinux (on 0x000000000006d2b8)
# nm ./perf.orig | grep dso__load_vmlinux\$
000000000046d2b0 T dso__load_vmlinux
---
You can see the given offset is 4 but the actual probed
address is dso__load_vmlinux+8.
With this fix
---
# ./perf probe -x ./perf.orig dso__load_vmlinux+4
# ./perf probe -l
probe_perf:dso__load_vmlinux (on 0x000000000006d2b4)
---
Now the problem is fixed.
>
>> ---
>> You can see the given offset is 3 but the actual probed
>
> s/3/4/ ?
Yes, it's a typo. :(
Thank you!!
--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@...achi.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists