linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Carl Love <cel@us.ibm.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
	"linux-perf-use." <linux-perf-users@vger.kernel.org>
Subject: Re: Perf support for interpreted and Just-In-Time translated olanguages
Date: Fri, 09 Jan 2015 12:19:18 -0800	[thread overview]
Message-ID: <1420834758.4897.10.camel@oc0276584878.ibm.com> (raw)
In-Reply-To: <20141210194302.GH8788@kernel.org>

Arnaldo:

> I think this should be solved in the same way, i.e. content based keys,
> that we call build-ids, every mapping, when put in place generates an
> event, say PERF_RECORD_MMAP3, that comes with a key that can later be
> used to retrieve the matching ELF file with DWARF info for annotation,
> symbol resolution, unwinding, etc.
> 
> Modern distros have this and that is why we store in the perf.data file
> just the build ids, not the full ELF files at the time of the recording
> session:

I have been looking at and trying to code up some JIT support for perf.
I have written a library to register the callbacks from a Java
application. That is all fairly easy stuff.

I have been trying to figure out how to get this library to communicate
and send an event record to perf so perf can write it into perf.data, as
you mentioned above.  Specifically we will want to write the load and
unload records to perf.data.  The library gets loaded into the Java
application but if you try loading the library in perf, they do not
share the same data space so you can't pass the data directly.  

The only solution I see is creating a shared memory space where the
library can place the event info.  Then perf will have to connect to the
shared memory space and "watch" for data to show up.  This seems really
awkward and slower then what we need. We need the notifications to be
put into the perf.data file as close in time as possible to the event to
ensure proper mapping of the addresses. It also means only one Java
program can be using the interface at a time.  

I have thought about pipes, callbacks, but I don't see any way to get
these to work between the library loaded in the Java program and perf.
Just wondering if you had any thoughts on how to do the communication?

                 Carl Love

  reply	other threads:[~2015-01-09 20:19 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-05 20:18 Perf support for interpreted and Just-In-Time translated languages Carl Love
2014-12-05 21:27 ` Brendan Gregg
2014-12-09 20:34   ` Arnaldo Carvalho de Melo
2014-12-09 22:01     ` Andi Kleen
2014-12-09 22:22       ` Perf support for interpreted and Just-In-Time translated olanguages Arnaldo Carvalho de Melo
2014-12-10  0:38         ` Andi Kleen
2014-12-10 17:41           ` Carl Love
2014-12-10 18:09             ` Andi Kleen
2014-12-10 19:21             ` Arnaldo Carvalho de Melo
2014-12-10 19:19           ` Arnaldo Carvalho de Melo
2014-12-10 17:32         ` Andi Kleen
2014-12-10 17:39           ` David Ahern
2014-12-10 18:05             ` Andi Kleen
2014-12-10 18:27               ` David Ahern
2014-12-10 19:43                 ` Arnaldo Carvalho de Melo
2015-01-09 20:19                   ` Carl Love [this message]
2015-01-10  4:15                     ` William Cohen
2015-01-10 15:14                       ` David Ahern
2015-01-12 17:22                         ` Carl Love
2015-01-12 17:58                           ` David Ahern
2015-01-12 18:43                             ` Carl Love
2015-01-20 18:19                             ` Carl Love
2015-01-20 19:29                               ` Arnaldo Carvalho de Melo
2015-01-20 20:34                                 ` Carl Love
2015-01-20 20:52                                   ` Arnaldo Carvalho de Melo
2015-01-23  8:25                               ` Sujoy Saraswati
2014-12-10  7:55     ` Perf support for interpreted and Just-In-Time translated languages Pekka Enberg

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=1420834758.4897.10.camel@oc0276584878.ibm.com \
    --to=cel@us.ibm.com \
    --cc=acme@kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    /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).