lkml.org 
[lkml]   [2018]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 08/13] perf tools: Use compression id in decompress_kmodule function
    Date
    Once we parsed out the compression ID, we dont need to
    iterate all available compressions and we can call it
    directly.

    Link: http://lkml.kernel.org/n/tip-55zrhxhr699pswx34d0hd4u9@git.kernel.org
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    ---
    tools/perf/util/dso.c | 25 +++----------------------
    1 file changed, 3 insertions(+), 22 deletions(-)

    diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
    index f0e4cc43c97e..1cee958c9a2a 100644
    --- a/tools/perf/util/dso.c
    +++ b/tools/perf/util/dso.c
    @@ -244,19 +244,6 @@ bool is_kernel_module(const char *pathname, int cpumode)
    return m.kmod;
    }

    -static bool
    -decompress_to_file(const char *ext, const char *filename, int output_fd)
    -{
    - unsigned i;
    -
    - for (i = 0; compressions[i].fmt; i++) {
    - if (!strcmp(ext, compressions[i].fmt))
    - return !compressions[i].decompress(filename,
    - output_fd);
    - }
    - return false;
    -}
    -
    bool dso__needs_decompress(struct dso *dso)
    {
    return dso->symtab_type == DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE_COMP ||
    @@ -266,31 +253,25 @@ bool dso__needs_decompress(struct dso *dso)
    static int decompress_kmodule(struct dso *dso, const char *name, char *tmpbuf)
    {
    int fd = -1;
    - struct kmod_path m;

    if (!dso__needs_decompress(dso))
    return -1;

    - if (kmod_path__parse_ext(&m, dso->long_name))
    + if (dso->comp == COMP_ID__NONE)
    return -1;

    - if (!m.comp)
    - goto out;
    -
    fd = mkstemp(tmpbuf);
    if (fd < 0) {
    dso->load_errno = errno;
    - goto out;
    + return -1;
    }

    - if (!decompress_to_file(m.ext, name, fd)) {
    + if (compressions[dso->comp].decompress(name, fd)) {
    dso->load_errno = DSO_LOAD_ERRNO__DECOMPRESSION_FAILURE;
    close(fd);
    fd = -1;
    }

    -out:
    - free(m.ext);
    return fd;
    }

    --
    2.17.1
    \
     
     \ /
      Last update: 2018-08-17 11:49    [W:4.119 / U:0.316 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site