lkml.org 
[lkml]   [2013]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 028/212] perf tools: Synthesize anon MMAP records again
    Date
    3.12-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Don Zickus <dzickus@redhat.com>

    commit 9d4ecc8893832337daf241236841db966fa53489 upstream.

    When introducing the PERF_RECORD_MMAP2 in:

    5c5e854bc760 perf tools: Add attr->mmap2 support

    A check for the number of entries parsed by sscanf was introduced that
    assumed all of the 8 fields needed to be correctly parsed so that
    particular /proc/pid/maps line would be considered synthesizable.

    That broke anon records synthesizing, as it doesn't have the 'execname'
    field.

    Fix it by keeping the sscanf return check, changing it to not require
    that the 'execname' variable be parsed, so that the preexisting logic
    can kick in and set it to '//anon'.

    This should get things like JIT profiling working again.

    Signed-off-by: Don Zickus <dzickus@redhat.com>
    Cc: Bill Gray <bgray@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Joe Mario <jmario@redhat.com>
    Cc: Richard Fowles <rfowles@redhat.com>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/n/tip-bo4akalno7579shpz29u867j@git.kernel.org
    [ commit log message is mine, dzickus reported the problem with a patch ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    tools/perf/util/event.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/tools/perf/util/event.c
    +++ b/tools/perf/util/event.c
    @@ -212,8 +212,10 @@ static int perf_event__synthesize_mmap_e
    &event->mmap.start, &event->mmap.len, prot,
    &event->mmap.pgoff,
    execname);
    -
    - if (n != 5)
    + /*
    + * Anon maps don't have the execname.
    + */
    + if (n < 4)
    continue;

    if (prot[2] != 'x')



    \
     
     \ /
      Last update: 2013-12-03 00:21    [W:4.752 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site