[Mesa-dev] [PATCH] gallivm: JIT symbol resolution with linux perf.

Jose Fonseca jfonseca at vmware.com
Wed Apr 17 07:24:19 PDT 2013



----- Original Message -----
> On 04/17/2013 06:34 AM, jfonseca at vmware.com wrote:
> > From: José Fonseca<jfonseca at vmware.com>
> >
> > Details on docs/llvmpipe.html
> > ---
> >   bin/perf-annotate-jit                          |  240
> >   ++++++++++++++++++++++++
> >   configure.ac                                   |    7 -
> >   docs/llvmpipe.html                             |   40 ++--
> >   src/gallium/auxiliary/gallivm/lp_bld_debug.cpp |  117 +++++++++---
> >   src/gallium/auxiliary/gallivm/lp_bld_debug.h   |    6 +-
> >   src/gallium/auxiliary/gallivm/lp_bld_init.c    |   11 +-
> >   src/gallium/auxiliary/gallivm/lp_bld_misc.cpp  |   23 ---
> >   src/gallium/auxiliary/gallivm/lp_bld_misc.h    |    3 -
> >   8 files changed, 361 insertions(+), 86 deletions(-)
> >   create mode 100755 bin/perf-annotate-jit
> >
> > diff --git a/bin/perf-annotate-jit b/bin/perf-annotate-jit
> > new file mode 100755
> > index 0000000..7ebc965
> > --- /dev/null
> > +++ b/bin/perf-annotate-jit
> > @@ -0,0 +1,240 @@
> > +#!/usr/bin/env python
> > +#
> > +# Copyright 2012 VMware Inc
> > +# Copyright 2008-2009 Jose Fonseca
> > +#
> > +# Permission is hereby granted, free of charge, to any person obtaining a
> > copy
> > +# of this software and associated documentation files (the "Software"), to
> > deal
> > +# in the Software without restriction, including without limitation the
> > rights
> > +# to use, copy, modify, merge, publish, distribute, sublicense, and/or
> > sell
> > +# copies of the Software, and to permit persons to whom the Software is
> > +# furnished to do so, subject to the following conditions:
> > +#
> > +# The above copyright notice and this permission notice shall be included
> > in
> > +# all copies or substantial portions of the Software.
> > +#
> > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> > OR
> > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> > THE
> > +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > FROM,
> > +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
> > IN
> > +# THE SOFTWARE.
> > +#
> > +
> 
> Could you add some comments in this file explaining what this does?
> Maybe include a pointer to the docs page too.  I'm not familiar with
> linux perf.

Yes, good point.

diff --git a/bin/perf-annotate-jit b/bin/perf-annotate-jit
index 7ebc965..7464340 100755
--- a/bin/perf-annotate-jit
+++ b/bin/perf-annotate-jit
@@ -22,6 +22,17 @@
 # THE SOFTWARE.
 #
 
+"""Perf annotate for JIT code.
+
+Linux `perf annotate` does not work with JIT code.  This script takes the data
+produced by `perf script` command, plus the diassemblies outputed by gallivm
+into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`.
+
+See docs/llvmpipe.html for usage instructions.
+
+The `perf script` output parser was derived from the gprof2dot.py script.
+"""
+
 
 import sys
 import os.path


> LGTM, but Roland should probably review too.

Thanks for reviewing.

Jose


More information about the mesa-dev mailing list