lkml.org 
[lkml]   [2016]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf hists: Pass perf_hpp_list all the way through setup_output_list
    Commit-ID:  07600027fb7114bf7bcabdd121e5178f200d8a44
    Gitweb: http://git.kernel.org/tip/07600027fb7114bf7bcabdd121e5178f200d8a44
    Author: Jiri Olsa <jolsa@kernel.org>
    AuthorDate: Mon, 18 Jan 2016 10:24:16 +0100
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Wed, 3 Feb 2016 12:24:13 -0300

    perf hists: Pass perf_hpp_list all the way through setup_output_list

    Passing perf_hpp_list all the way through setup_output_list so the
    output entry could be added on the arbitrary list.

    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1453109064-1026-19-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/sort.c | 33 ++++++++++++++++++---------------
    1 file changed, 18 insertions(+), 15 deletions(-)

    diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
    index 36dbd55..f643bed 100644
    --- a/tools/perf/util/sort.c
    +++ b/tools/perf/util/sort.c
    @@ -1616,14 +1616,15 @@ static int __sort_dimension__add_hpp_sort(struct sort_dimension *sd)
    return 0;
    }

    -static int __sort_dimension__add_hpp_output(struct sort_dimension *sd)
    +static int __sort_dimension__add_hpp_output(struct perf_hpp_list *list,
    + struct sort_dimension *sd)
    {
    struct hpp_sort_entry *hse = __sort_dimension__alloc_hpp(sd);

    if (hse == NULL)
    return -1;

    - perf_hpp__column_register(&hse->hpp);
    + perf_hpp_list__column_register(list, &hse->hpp);
    return 0;
    }

    @@ -2117,19 +2118,21 @@ static int __hpp_dimension__add(struct hpp_dimension *hd)
    return 0;
    }

    -static int __sort_dimension__add_output(struct sort_dimension *sd)
    +static int __sort_dimension__add_output(struct perf_hpp_list *list,
    + struct sort_dimension *sd)
    {
    if (sd->taken)
    return 0;

    - if (__sort_dimension__add_hpp_output(sd) < 0)
    + if (__sort_dimension__add_hpp_output(list, sd) < 0)
    return -1;

    sd->taken = 1;
    return 0;
    }

    -static int __hpp_dimension__add_output(struct hpp_dimension *hd)
    +static int __hpp_dimension__add_output(struct perf_hpp_list *list,
    + struct hpp_dimension *hd)
    {
    struct perf_hpp_fmt *fmt;

    @@ -2141,14 +2144,14 @@ static int __hpp_dimension__add_output(struct hpp_dimension *hd)
    return -1;

    hd->taken = 1;
    - perf_hpp__column_register(fmt);
    + perf_hpp_list__column_register(list, fmt);
    return 0;
    }

    int hpp_dimension__add_output(unsigned col)
    {
    BUG_ON(col >= PERF_HPP__MAX_INDEX);
    - return __hpp_dimension__add_output(&hpp_sort_dimensions[col]);
    + return __hpp_dimension__add_output(&perf_hpp_list, &hpp_sort_dimensions[col]);
    }

    static int sort_dimension__add(const char *tok,
    @@ -2492,7 +2495,7 @@ void sort__setup_elide(FILE *output)
    }
    }

    -static int output_field_add(char *tok)
    +static int output_field_add(struct perf_hpp_list *list, char *tok)
    {
    unsigned int i;

    @@ -2502,7 +2505,7 @@ static int output_field_add(char *tok)
    if (strncasecmp(tok, sd->name, strlen(tok)))
    continue;

    - return __sort_dimension__add_output(sd);
    + return __sort_dimension__add_output(list, sd);
    }

    for (i = 0; i < ARRAY_SIZE(hpp_sort_dimensions); i++) {
    @@ -2511,7 +2514,7 @@ static int output_field_add(char *tok)
    if (strncasecmp(tok, hd->name, strlen(tok)))
    continue;

    - return __hpp_dimension__add_output(hd);
    + return __hpp_dimension__add_output(list, hd);
    }

    for (i = 0; i < ARRAY_SIZE(bstack_sort_dimensions); i++) {
    @@ -2520,7 +2523,7 @@ static int output_field_add(char *tok)
    if (strncasecmp(tok, sd->name, strlen(tok)))
    continue;

    - return __sort_dimension__add_output(sd);
    + return __sort_dimension__add_output(list, sd);
    }

    for (i = 0; i < ARRAY_SIZE(memory_sort_dimensions); i++) {
    @@ -2529,20 +2532,20 @@ static int output_field_add(char *tok)
    if (strncasecmp(tok, sd->name, strlen(tok)))
    continue;

    - return __sort_dimension__add_output(sd);
    + return __sort_dimension__add_output(list, sd);
    }

    return -ESRCH;
    }

    -static int setup_output_list(char *str)
    +static int setup_output_list(struct perf_hpp_list *list, char *str)
    {
    char *tmp, *tok;
    int ret = 0;

    for (tok = strtok_r(str, ", ", &tmp);
    tok; tok = strtok_r(NULL, ", ", &tmp)) {
    - ret = output_field_add(tok);
    + ret = output_field_add(list, tok);
    if (ret == -EINVAL) {
    error("Invalid --fields key: `%s'", tok);
    break;
    @@ -2599,7 +2602,7 @@ static int __setup_output_field(void)
    goto out;
    }

    - ret = setup_output_list(strp);
    + ret = setup_output_list(&perf_hpp_list, strp);

    out:
    free(str);
    \
     
     \ /
      Last update: 2016-02-04 14:21    [W:4.525 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site