linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Masami Hiramatsu <mhiramat@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Jiri Olsa <jolsa@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
	Namhyung Kim <namhyung@kernel.org>,
	David Ahern <dsahern@gmail.com>
Subject: Re: failed to add c++ probe
Date: Fri, 23 Sep 2016 22:32:25 +0900	[thread overview]
Message-ID: <20160923223225.da9b269cabb42e459767d237@kernel.org> (raw)
In-Reply-To: <20160922085406.GY5008@twins.programming.kicks-ass.net>

On Thu, 22 Sep 2016 10:54:06 +0200
Peter Zijlstra <peterz@infradead.org> wrote:

> On Wed, Sep 21, 2016 at 01:43:24PM +0900, Masami Hiramatsu wrote:
> > On Wed, 21 Sep 2016 12:37:59 +0900
> > Masami Hiramatsu <mhiramat@kernel.org> wrote:
> 
> > Hmm, I found there are 3 issues in perf-probe to define event on C++ libs.
> > 
> > 1) No mangle/demangle symbol support. This needs a) fix option parser to
> >    accept C++ method name correctly, b) mangle that method, and c) demangle
> >    it when we show the probe point.
> 
> I think we should also allow using the mangled name, supporting (de)mangling
> is of course nice, but not required per-se. Esp. since there's more than
> just C++ mangling. Having the mangling stuff as optional makes it a
> convenience but still allows using this on other languages for which we
> do not support the mangling.

Agreed. I also learned that mangling depends on the compiler and no
good way to get demangled name to mangled name. Moreover, the demangled
name will include arguments, templates etc. because of supporting polymorphism.
At this phase, I would like to support only "method name" or "mangled name".

> > 2) @plt symbol should be skipped since the real function will be called(jumped)
> >    from plt, when searching probe point.
> > 
> > 3) Event group name is including some characters which can not be used (e.g. "++").
> >    Thus we have to remove it or replace it with '_' or other alphabet.("PP"?)
> 
> What is the problem with the '+' character? Why cannot this be used? 

In the ftrace, it is not considered to use such characters for event/group
name, because the name is used for generating symbols for tracepoints.
IOW, other tracepoint events have the name same as C naming conventions.
(Maybe that is also good for out-of-tree tools and scripts to parse it.)

Thank you,

-- 
Masami Hiramatsu <mhiramat@kernel.org>

      reply	other threads:[~2016-09-23 13:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-19  9:54 failed to add c++ probe Jiri Olsa
2016-09-19 23:05 ` Masami Hiramatsu
2016-09-19 23:32   ` Thomas Gleixner
2016-09-21  3:37     ` Masami Hiramatsu
2016-09-21  4:43       ` Masami Hiramatsu
2016-09-22  8:54         ` Peter Zijlstra
2016-09-23 13:32           ` Masami Hiramatsu [this message]

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=20160923223225.da9b269cabb42e459767d237@kernel.org \
    --to=mhiramat@kernel.org \
    --cc=acme@kernel.org \
    --cc=dsahern@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).