lkml.org 
[lkml]   [2015]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[perf/core PATCH 1/4] perf-buildid-cache: Remove unneeded debugdir parameters
    From
    Date
    Functions related to buildid-cache subcommand use debugdir
    parameters for passing buildid cache directory path. However
    all callers just pass buildid_dir global variable. Moreover,
    other functions which refer buildid cache use buildid_dir
    directly.
    This removes unneeded debugdir parameters from those functions
    and use buildid_dir if needed.

    Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    ---
    tools/perf/builtin-buildid-cache.c | 37 +++++++++++++-----------------
    tools/perf/util/build-id.c | 44 ++++++++++++++++--------------------
    tools/perf/util/build-id.h | 4 ++-
    3 files changed, 38 insertions(+), 47 deletions(-)

    diff --git a/tools/perf/builtin-buildid-cache.c b/tools/perf/builtin-buildid-cache.c
    index 50e6b66..d929d95 100644
    --- a/tools/perf/builtin-buildid-cache.c
    +++ b/tools/perf/builtin-buildid-cache.c
    @@ -125,8 +125,7 @@ static int build_id_cache__kcore_existing(const char *from_dir, char *to_dir,
    return ret;
    }

    -static int build_id_cache__add_kcore(const char *filename, const char *debugdir,
    - bool force)
    +static int build_id_cache__add_kcore(const char *filename, bool force)
    {
    char dir[32], sbuildid[BUILD_ID_SIZE * 2 + 1];
    char from_dir[PATH_MAX], to_dir[PATH_MAX];
    @@ -143,7 +142,7 @@ static int build_id_cache__add_kcore(const char *filename, const char *debugdir,
    return -1;

    scnprintf(to_dir, sizeof(to_dir), "%s/[kernel.kcore]/%s",
    - debugdir, sbuildid);
    + buildid_dir, sbuildid);

    if (!force &&
    !build_id_cache__kcore_existing(from_dir, to_dir, sizeof(to_dir))) {
    @@ -155,7 +154,7 @@ static int build_id_cache__add_kcore(const char *filename, const char *debugdir,
    return -1;

    scnprintf(to_dir, sizeof(to_dir), "%s/[kernel.kcore]/%s/%s",
    - debugdir, sbuildid, dir);
    + buildid_dir, sbuildid, dir);

    if (mkdir_p(to_dir, 0755))
    return -1;
    @@ -183,7 +182,7 @@ static int build_id_cache__add_kcore(const char *filename, const char *debugdir,
    return 0;
    }

    -static int build_id_cache__add_file(const char *filename, const char *debugdir)
    +static int build_id_cache__add_file(const char *filename)
    {
    char sbuild_id[BUILD_ID_SIZE * 2 + 1];
    u8 build_id[BUILD_ID_SIZE];
    @@ -195,7 +194,7 @@ static int build_id_cache__add_file(const char *filename, const char *debugdir)
    }

    build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
    - err = build_id_cache__add_s(sbuild_id, debugdir, filename,
    + err = build_id_cache__add_s(sbuild_id, filename,
    false, false);
    if (verbose)
    pr_info("Adding %s %s: %s\n", sbuild_id, filename,
    @@ -203,8 +202,7 @@ static int build_id_cache__add_file(const char *filename, const char *debugdir)
    return err;
    }

    -static int build_id_cache__remove_file(const char *filename,
    - const char *debugdir)
    +static int build_id_cache__remove_file(const char *filename)
    {
    u8 build_id[BUILD_ID_SIZE];
    char sbuild_id[BUILD_ID_SIZE * 2 + 1];
    @@ -217,7 +215,7 @@ static int build_id_cache__remove_file(const char *filename,
    }

    build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
    - err = build_id_cache__remove_s(sbuild_id, debugdir);
    + err = build_id_cache__remove_s(sbuild_id);
    if (verbose)
    pr_info("Removing %s %s: %s\n", sbuild_id, filename,
    err ? "FAIL" : "Ok");
    @@ -252,8 +250,7 @@ static int build_id_cache__fprintf_missing(struct perf_session *session, FILE *f
    return 0;
    }

    -static int build_id_cache__update_file(const char *filename,
    - const char *debugdir)
    +static int build_id_cache__update_file(const char *filename)
    {
    u8 build_id[BUILD_ID_SIZE];
    char sbuild_id[BUILD_ID_SIZE * 2 + 1];
    @@ -266,11 +263,10 @@ static int build_id_cache__update_file(const char *filename,
    }

    build_id__sprintf(build_id, sizeof(build_id), sbuild_id);
    - err = build_id_cache__remove_s(sbuild_id, debugdir);
    - if (!err) {
    - err = build_id_cache__add_s(sbuild_id, debugdir, filename,
    - false, false);
    - }
    + err = build_id_cache__remove_s(sbuild_id);
    + if (!err)
    + err = build_id_cache__add_s(sbuild_id, filename, false, false);
    +
    if (verbose)
    pr_info("Updating %s %s: %s\n", sbuild_id, filename,
    err ? "FAIL" : "Ok");
    @@ -338,7 +334,7 @@ int cmd_buildid_cache(int argc, const char **argv,
    list = strlist__new(true, add_name_list_str);
    if (list) {
    strlist__for_each(pos, list)
    - if (build_id_cache__add_file(pos->s, buildid_dir)) {
    + if (build_id_cache__add_file(pos->s)) {
    if (errno == EEXIST) {
    pr_debug("%s already in the cache\n",
    pos->s);
    @@ -356,7 +352,7 @@ int cmd_buildid_cache(int argc, const char **argv,
    list = strlist__new(true, remove_name_list_str);
    if (list) {
    strlist__for_each(pos, list)
    - if (build_id_cache__remove_file(pos->s, buildid_dir)) {
    + if (build_id_cache__remove_file(pos->s)) {
    if (errno == ENOENT) {
    pr_debug("%s wasn't in the cache\n",
    pos->s);
    @@ -377,7 +373,7 @@ int cmd_buildid_cache(int argc, const char **argv,
    list = strlist__new(true, update_name_list_str);
    if (list) {
    strlist__for_each(pos, list)
    - if (build_id_cache__update_file(pos->s, buildid_dir)) {
    + if (build_id_cache__update_file(pos->s)) {
    if (errno == ENOENT) {
    pr_debug("%s wasn't in the cache\n",
    pos->s);
    @@ -391,8 +387,7 @@ int cmd_buildid_cache(int argc, const char **argv,
    }
    }

    - if (kcore_filename &&
    - build_id_cache__add_kcore(kcore_filename, buildid_dir, force))
    + if (kcore_filename && build_id_cache__add_kcore(kcore_filename, force))
    pr_warning("Couldn't add %s\n", kcore_filename);

    out:
    diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c
    index 0c72680..9f764f6 100644
    --- a/tools/perf/util/build-id.c
    +++ b/tools/perf/util/build-id.c
    @@ -259,8 +259,8 @@ void disable_buildid_cache(void)
    no_buildid_cache = true;
    }

    -int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
    - const char *name, bool is_kallsyms, bool is_vdso)
    +int build_id_cache__add_s(const char *sbuild_id, const char *name,
    + bool is_kallsyms, bool is_vdso)
    {
    const size_t size = PATH_MAX;
    char *realname, *filename = zalloc(size),
    @@ -282,7 +282,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
    goto out_free;

    len = scnprintf(filename, size, "%s%s%s",
    - debugdir, slash ? "/" : "",
    + buildid_dir, slash ? "/" : "",
    is_vdso ? DSO__NAME_VDSO : realname);
    if (mkdir_p(filename, 0755))
    goto out_free;
    @@ -298,13 +298,13 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
    }

    len = scnprintf(linkname, size, "%s/.build-id/%.2s",
    - debugdir, sbuild_id);
    + buildid_dir, sbuild_id);

    if (access(linkname, X_OK) && mkdir_p(linkname, 0755))
    goto out_free;

    snprintf(linkname + len, size - len, "/%s", sbuild_id + 2);
    - targetname = filename + strlen(debugdir) - 5;
    + targetname = filename + strlen(buildid_dir) - 5;
    memcpy(targetname, "../..", 5);

    if (symlink(targetname, linkname) == 0)
    @@ -318,18 +318,17 @@ out_free:
    }

    static int build_id_cache__add_b(const u8 *build_id, size_t build_id_size,
    - const char *name, const char *debugdir,
    - bool is_kallsyms, bool is_vdso)
    + const char *name, bool is_kallsyms,
    + bool is_vdso)
    {
    char sbuild_id[BUILD_ID_SIZE * 2 + 1];

    build_id__sprintf(build_id, build_id_size, sbuild_id);

    - return build_id_cache__add_s(sbuild_id, debugdir, name,
    - is_kallsyms, is_vdso);
    + return build_id_cache__add_s(sbuild_id, name, is_kallsyms, is_vdso);
    }

    -int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir)
    +int build_id_cache__remove_s(const char *sbuild_id)
    {
    const size_t size = PATH_MAX;
    char *filename = zalloc(size),
    @@ -340,7 +339,7 @@ int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir)
    goto out_free;

    snprintf(linkname, size, "%s/.build-id/%.2s/%s",
    - debugdir, sbuild_id, sbuild_id + 2);
    + buildid_dir, sbuild_id, sbuild_id + 2);

    if (access(linkname, F_OK))
    goto out_free;
    @@ -355,7 +354,7 @@ int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir)
    * Since the link is relative, we must make it absolute:
    */
    snprintf(linkname, size, "%s/.build-id/%.2s/%s",
    - debugdir, sbuild_id, filename);
    + buildid_dir, sbuild_id, filename);

    if (unlink(linkname))
    goto out_free;
    @@ -367,8 +366,7 @@ out_free:
    return err;
    }

    -static int dso__cache_build_id(struct dso *dso, struct machine *machine,
    - const char *debugdir)
    +static int dso__cache_build_id(struct dso *dso, struct machine *machine)
    {
    bool is_kallsyms = dso->kernel && dso->long_name[0] != '/';
    bool is_vdso = dso__is_vdso(dso);
    @@ -381,28 +379,26 @@ static int dso__cache_build_id(struct dso *dso, struct machine *machine,
    name = nm;
    }
    return build_id_cache__add_b(dso->build_id, sizeof(dso->build_id), name,
    - debugdir, is_kallsyms, is_vdso);
    + is_kallsyms, is_vdso);
    }

    static int __dsos__cache_build_ids(struct list_head *head,
    - struct machine *machine, const char *debugdir)
    + struct machine *machine)
    {
    struct dso *pos;
    int err = 0;

    dsos__for_each_with_build_id(pos, head)
    - if (dso__cache_build_id(pos, machine, debugdir))
    + if (dso__cache_build_id(pos, machine))
    err = -1;

    return err;
    }

    -static int machine__cache_build_ids(struct machine *machine, const char *debugdir)
    +static int machine__cache_build_ids(struct machine *machine)
    {
    - int ret = __dsos__cache_build_ids(&machine->kernel_dsos.head, machine,
    - debugdir);
    - ret |= __dsos__cache_build_ids(&machine->user_dsos.head, machine,
    - debugdir);
    + int ret = __dsos__cache_build_ids(&machine->kernel_dsos.head, machine);
    + ret |= __dsos__cache_build_ids(&machine->user_dsos.head, machine);
    return ret;
    }

    @@ -417,11 +413,11 @@ int perf_session__cache_build_ids(struct perf_session *session)
    if (mkdir(buildid_dir, 0755) != 0 && errno != EEXIST)
    return -1;

    - ret = machine__cache_build_ids(&session->machines.host, buildid_dir);
    + ret = machine__cache_build_ids(&session->machines.host);

    for (nd = rb_first(&session->machines.guests); nd; nd = rb_next(nd)) {
    struct machine *pos = rb_entry(nd, struct machine, rb_node);
    - ret |= machine__cache_build_ids(pos, buildid_dir);
    + ret |= machine__cache_build_ids(pos);
    }
    return ret ? -1 : 0;
    }
    diff --git a/tools/perf/util/build-id.h b/tools/perf/util/build-id.h
    index 8236319..31b3c63 100644
    --- a/tools/perf/util/build-id.h
    +++ b/tools/perf/util/build-id.h
    @@ -22,9 +22,9 @@ bool perf_session__read_build_ids(struct perf_session *session, bool with_hits);
    int perf_session__write_buildid_table(struct perf_session *session, int fd);
    int perf_session__cache_build_ids(struct perf_session *session);

    -int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
    +int build_id_cache__add_s(const char *sbuild_id,
    const char *name, bool is_kallsyms, bool is_vdso);
    -int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir);
    +int build_id_cache__remove_s(const char *sbuild_id);
    void disable_buildid_cache(void);

    #endif


    \
     
     \ /
      Last update: 2015-02-07 11:21    [W:3.253 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site