lkml.org 
[lkml]   [2011]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/urgent] perf symbols: Fix vmlinux path when not using --symfs
    Commit-ID:  a639dc64e52183a361c260e562e73b0800b89072
    Gitweb: http://git.kernel.org/tip/a639dc64e52183a361c260e562e73b0800b89072
    Author: Arnaldo Carvalho de Melo <acme@redhat.com>
    AuthorDate: Mon, 28 Feb 2011 13:54:38 -0300
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Mon, 28 Feb 2011 13:54:38 -0300

    perf symbols: Fix vmlinux path when not using --symfs

    The ec5761e cset introduced the symfs feature with a bug for loading vmlinux
    files that ended up causing this failure:

    [root@emilia v2.6.38-rc5+]# strace -e trace=open perf top --vmlinux ./vmlinux 2>&1 | tail -3
    open("/./vmlinux", O_RDONLY) = -1 ENOENT (No such file or directory)
    ./vmlinux with build id b9266bf40e98dadb5d43a2f3e95d3c5d4aff46dc not found, continuing without symbols
    The ./vmlinux file can't be used
    [root@emilia v2.6.38-rc5+]#

    Remove the extra slash, just like is done in the DSO__ORIG_DSO handling in
    dso__load() and other parts of the ec5761e cset.

    Reported-by: Ingo Molnar <mingo@elte.hu>
    Cc: David Ahern <daahern@cisco.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    LKML-Reference: <new-submission>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/symbol.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
    index 7821d0e..b1bf490 100644
    --- a/tools/perf/util/symbol.c
    +++ b/tools/perf/util/symbol.c
    @@ -1836,7 +1836,7 @@ int dso__load_vmlinux(struct dso *self, struct map *map,
    int err = -1, fd;
    char symfs_vmlinux[PATH_MAX];

    - snprintf(symfs_vmlinux, sizeof(symfs_vmlinux), "%s/%s",
    + snprintf(symfs_vmlinux, sizeof(symfs_vmlinux), "%s%s",
    symbol_conf.symfs, vmlinux);
    fd = open(symfs_vmlinux, O_RDONLY);
    if (fd < 0)

    \
     
     \ /
      Last update: 2011-03-01 09:59    [W:0.023 / U:29.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site