Re: 'perf probe' and symbols from .text.<something>

From: Masami Hiramatsu
Date: Mon Feb 22 2021 - 10:13:17 EST


On Tue, 23 Feb 2021 00:05:08 +0900
Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:

> Hi Evgenii,
>
> On Thu, 18 Feb 2021 20:09:17 +0300
> Evgenii Shatokhin <eshatokhin@xxxxxxxxxxxxx> wrote:
>
> > 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!
>
> >
> > ------------
> > # 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)
>
[...]

> > 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 <mhiramat@xxxxxxxxxx>