From: "Wangnan (F)" <wangnan0@huawei.com>
To: "平松雅巳 / HIRAMATU,MASAMI" <masami.hiramatsu.pt@hitachi.com>,
"acme@kernel.org" <acme@kernel.org>
Cc: "linux-perf-users@vger.kernel.org"
<linux-perf-users@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Arnaldo Carvalho de Melo <acme@redhat.com>,
Namhyung Kim <namhyung@kernel.org>, Zefan Li <lizefan@huawei.com>,
"pi3orama@163.com" <pi3orama@163.com>
Subject: Re: [PATCH] perf probe: Adjust dso->long_name for offline module
Date: Thu, 26 Nov 2015 09:29:32 +0800 [thread overview]
Message-ID: <5656607C.40907@huawei.com> (raw)
In-Reply-To: <50399556C9727B4D88A595C8584AAB3752631912@GSjpTKYDCembx32.service.hitachi.net>
On 2015/11/26 9:10, 平松雅巳 / HIRAMATU,MASAMI wrote:
> From: Wang Nan [mailto:wangnan0@huawei.com]
>> If libelf unable to open debuginfo for an offline module but the ko has
>> symtab, something unexpected may happen.
>>
>> # rm -rf ~/.debug/
>> # mv /usr/lib64/elfutils/libebl_x86_64.so{,.bak}
> Please do give more possible usecase. removing libebl is crazy,
> and broken environment.
It is a real problem we met, where perf itself is statically linked
and copied to target platform.
> If you'd like to use perf probe without debuginfo, make NO_DWARF=1 or
> strip the target binary.
Can't simply stripping the target binary because the symtab would
also be stipped out.
>> # ./perf probe -m /home/wangnan/kmodule/mymodule.ko my_func
>> [mymodule] with build id 326ab42550ef3d24944f53c817533728367effeb not found, continuing without symbols
>> Failed to find symbol my_func in /home/wangnan/kmodule/mymodule.ko
>> Error: Failed to add events
>> # ./perf buildid-cache -a ./mymodule.ko
>> # ./perf probe -m /home/wangnan/kmodule/mymodule.ko my_func
>> Added new event:
>> probe:my_func (on my_func in /home/wangnan/kmodule/mymodule.ko)
>>
>> You can now use it in all perf tools, such as:
>>
>> perf record -e probe:my_func -aR sleep 1
>>
>> In the above example, probe fails if it isn't in buildid-cache. However,
>> user would expect it success in both case because perf is able to find
>> probe points actually.
>>
>> The problem is because perf won't utilize module's full path if it
>> failed to open debuginfo. In
>> convert_to_probe_trace_events ->
>> find_probe_trace_events_from_map ->
>> get_target_map ->
>> kernel_get_module_map ->
>> machine__findnew_module_map ->
>> map_groups__find_by_name
>>
>> map_groups__find_by_name() is able to find the map of that module, but
>> this information is found from /proc/modules before it knows the real
>> path of the offline module. Therefore, the map->dso->long_name is
>> set to something like '[mymodule]', which prevents dso__load() find
>> the real path of the module file.
> Hmm, if so, it should be fixed in map or machine, not in probe-event.c.
Will do in next version.
Thank you.
next prev parent reply other threads:[~2015-11-26 1:29 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-25 11:30 [PATCH] perf probe: Adjust dso->long_name for offline module Wang Nan
2015-11-25 11:30 ` Wang Nan
2015-11-25 19:35 ` Arnaldo Carvalho de Melo
2015-11-26 3:22 ` Wangnan (F)
2015-11-26 3:22 ` Wangnan (F)
2015-11-26 1:10 ` 平松雅巳 / HIRAMATU,MASAMI
2015-11-26 1:10 ` 平松雅巳 / HIRAMATU,MASAMI
2015-11-26 1:29 ` Wangnan (F) [this message]
2015-11-26 3:19 ` [PATCH v2] " Wang Nan
2015-11-26 3:19 ` Wang Nan
2015-11-26 3:59 ` [PATCH v3] " Wang Nan
2015-11-26 3:59 ` Wang Nan
2015-11-26 16:45 ` Arnaldo Carvalho de Melo
2015-11-27 7:44 ` [tip:perf/core] perf machine: Adjust dso-> long_name " tip-bot for Wang Nan
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=5656607C.40907@huawei.com \
--to=wangnan0@huawei.com \
--cc=acme@kernel.org \
--cc=acme@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=namhyung@kernel.org \
--cc=pi3orama@163.com \
/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.