[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240806160149.48606a0b@gandalf.local.home>
Date: Tue, 6 Aug 2024 16:01:49 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Song Liu <songliubraving@...a.com>
Cc: Song Liu <song@...nel.org>, "live-patching@...r.kernel.org"
<live-patching@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>,
"linux-trace-kernel@...r.kernel.org" <linux-trace-kernel@...r.kernel.org>,
Josh Poimboeuf <jpoimboe@...nel.org>, Jiri Kosina <jikos@...nel.org>,
Miroslav Benes <mbenes@...e.cz>, Petr Mladek <pmladek@...e.com>, Joe
Lawrence <joe.lawrence@...hat.com>, Nathan Chancellor <nathan@...nel.org>,
"morbo@...gle.com" <morbo@...gle.com>, Justin Stitt
<justinstitt@...gle.com>, Luis Chamberlain <mcgrof@...nel.org>, Leizhen
<thunder.leizhen@...wei.com>, "kees@...nel.org" <kees@...nel.org>, Kernel
Team <kernel-team@...a.com>, Matthew Maurer <mmaurer@...gle.com>, Sami
Tolvanen <samitolvanen@...gle.com>, Masami Hiramatsu <mhiramat@...nel.org>
Subject: Re: [PATCH v2 3/3] tracing/kprobes: Use APIs that matches symbols
without .XXX suffix
On Tue, 6 Aug 2024 16:00:49 -0400
Steven Rostedt <rostedt@...dmis.org> wrote:
> > >> + if (IS_ENABLED(CONFIG_LTO_CLANG) && !addr)
> > >> + addr = kallsyms_lookup_name_without_suffix(trace_kprobe_symbol(tk));
> > >> +
> > >
> > > So you do the lookup twice if this is enabled?
> > >
> > > Why not just use "kallsyms_lookup_name_without_suffix()" the entire time,
> > > and it should work just the same as "kallsyms_lookup_name()" if it's not
> > > needed?
> >
> > We still want to give priority to full match. For example, we have:
> >
> > [root@~]# grep c_next /proc/kallsyms
> > ffffffff81419dc0 t c_next.llvm.7567888411731313343
> > ffffffff81680600 t c_next
> > ffffffff81854380 t c_next.llvm.14337844803752139461
> >
> > If the goal is to explicitly trace c_next.llvm.7567888411731313343, the
> > user can provide the full name. If we always match _without_suffix, all
> > of the 3 will match to the first one.
> >
> > Does this make sense?
>
> Yes. Sorry, I missed the "&& !addr)" after the "IS_ENABLED()", which looked
> like you did the command twice.
But that said, does this only have to be for llvm? Or should we do this for
even gcc? As I believe gcc can give strange symbols too.
-- Steve
Powered by blists - more mailing lists