Re: 'perf probe' and symbols from .text.<something>
From: Masami Hiramatsu <mhiramat@kernel.org>
Date: 2021-02-22 15:13:18
Also in:
lkml
On Tue, 23 Feb 2021 00:05:08 +0900 Masami Hiramatsu [off-list ref] wrote:
Hi Evgenii, On Thu, 18 Feb 2021 20:09:17 +0300 Evgenii Shatokhin [off-list ref] wrote:quoted
Hi, It seems, 'perf probe' can only see functions from .text section in the kernel modules, but not from .text.unlikely or other .text.* sections. For example, with kernel 5.11 and nf_conntrack.ko with debug info, 'perf probe' succeeds for nf_conntrack_attach() from .text and fails for nf_ct_resolve_clash() from .text.unlikely:Thanks for reporting it!quoted
------------ # perf probe -v -m nf_conntrack nf_ct_resolve_clash probe-definition(0): nf_ct_resolve_clash symbol:nf_ct_resolve_clash file:(null) line:0 offset:0 return:0 lazy:(null) 0 arguments Failed to get build-id from nf_conntrack. Cache open error: -1 Open Debuginfo file: /lib/modules/5.11.0-test01/kernel/net/netfilter/nf_conntrack.ko Try to find probe point from debuginfo. Matched function: nf_ct_resolve_clash [33616] Probe point found: nf_ct_resolve_clash+0 Found 1 probe_trace_events. Post processing failed or all events are skipped. (-2) Probe point 'nf_ct_resolve_clash' not found. Error: Failed to add events. Reason: No such file or directory (Code: -2)
[...]
quoted
Is there a way to allow probing of functions in .text.<something> ?
BTW, just for putting a probe on nf_ct_resolve_clash, please give the module *path* instead of the module *name*. For example, perf probe -v -m /lib/modules/5.11.0-test01/kernel/net/netfilter/nf_conntrack.ko nf_ct_resolve_clash This should work (at least works for me), because it directly loads the symbols from the .ko file. Thank you, -- Masami Hiramatsu [off-list ref]