lkml.org 
[lkml]   [2018]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 4.9 015/293] perf tools: Decompress kernel module when reading DSO data
    Date
    From: Namhyung Kim <namhyung@kernel.org>

    [ Upstream commit 1d6b3c9ba756a5134fd7ad1959acac776d17404b ]

    Currently perf decompresses kernel modules when loading the symbol table
    but it missed to do it when reading raw data.

    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wang Nan <wangnan0@huawei.com>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20170608073109.30699-6-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    ---
    tools/perf/util/dso.c | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
    index d2c6cdd9d42b..4bc58822416c 100644
    --- a/tools/perf/util/dso.c
    +++ b/tools/perf/util/dso.c
    @@ -366,7 +366,23 @@ static int __open_dso(struct dso *dso, struct machine *machine)
    if (!is_regular_file(name))
    return -EINVAL;

    + if (dso__needs_decompress(dso)) {
    + char newpath[KMOD_DECOMP_LEN];
    + size_t len = sizeof(newpath);
    +
    + if (dso__decompress_kmodule_path(dso, name, newpath, len) < 0) {
    + free(name);
    + return -dso->load_errno;
    + }
    +
    + strcpy(name, newpath);
    + }
    +
    fd = do_open(name);
    +
    + if (dso__needs_decompress(dso))
    + unlink(name);
    +
    free(name);
    return fd;
    }
    --
    2.15.1
    \
     
     \ /
      Last update: 2018-04-09 04:46    [W:2.861 / U:0.736 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site