[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130111051612.GE3054@ghostprotocols.net>
Date: Fri, 11 Jan 2013 02:16:12 -0300
From: Arnaldo Carvalho de Melo <acme@...stprotocols.net>
To: Stephane Eranian <eranian@...gle.com>
Cc: Namhyung Kim <namhyung@...nel.org>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Paul Mackerras <paulus@...ba.org>,
Ingo Molnar <mingo@...nel.org>,
LKML <linux-kernel@...r.kernel.org>,
David Ahern <dsahern@...il.com>, Jiri Olsa <jolsa@...hat.com>,
Namhyung Kim <namhyung.kim@....com>
Subject: Re: [PATCH 06/10] perf sort: Drop ip_[lr] arguments from
_sort__sym_cmp()
Stephane, can you take a look at this one and provide feedback?
- Arnaldo
Em Thu, Dec 27, 2012 at 06:11:43PM +0900, Namhyung Kim escreveu:
> From: Namhyung Kim <namhyung.kim@....com>
>
> Current _sort__sym_cmp() function is used for comparing symbols
> between two hist entries on symbol, symbol_from and symbol_to sort
> keys. Those functions pass addresses of symbols but it's meaningless
> since it gets over-written inside of the _sort__sym_cmp function to a
> start address of the symbol. So just get rid of them.
>
> This might cause a difference than prior output for branch stacks
> since it seems not using start address of the symbol but branch
> address. However AFAICS it'd be same as it gets overwritten anyway.
>
> Also remove redundant part of code in sort__sym_cmp().
>
> Cc: Stephane Eranian <eranian@...gle.com>
> Signed-off-by: Namhyung Kim <namhyung@...nel.org>
> ---
> tools/perf/util/sort.c | 23 ++++++-----------------
> 1 file changed, 6 insertions(+), 17 deletions(-)
>
> diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> index a36051b34901..c02964cabdd0 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -160,9 +160,10 @@ struct sort_entry sort_dso = {
>
> /* --sort symbol */
>
> -static int64_t _sort__sym_cmp(struct symbol *sym_l, struct symbol *sym_r,
> - u64 ip_l, u64 ip_r)
> +static int64_t _sort__sym_cmp(struct symbol *sym_l, struct symbol *sym_r)
> {
> + u64 ip_l, ip_r;
> +
> if (!sym_l || !sym_r)
> return cmp_null(sym_l, sym_r);
>
> @@ -178,21 +179,10 @@ static int64_t _sort__sym_cmp(struct symbol *sym_l, struct symbol *sym_r,
> static int64_t
> sort__sym_cmp(struct hist_entry *left, struct hist_entry *right)
> {
> - u64 ip_l, ip_r;
> -
> if (!left->ms.sym && !right->ms.sym)
> return right->level - left->level;
>
> - if (!left->ms.sym || !right->ms.sym)
> - return cmp_null(left->ms.sym, right->ms.sym);
> -
> - if (left->ms.sym == right->ms.sym)
> - return 0;
> -
> - ip_l = left->ms.sym->start;
> - ip_r = right->ms.sym->start;
> -
> - return _sort__sym_cmp(left->ms.sym, right->ms.sym, ip_l, ip_r);
> + return _sort__sym_cmp(left->ms.sym, right->ms.sym);
> }
>
> static int _hist_entry__sym_snprintf(struct map *map, struct symbol *sym,
> @@ -380,8 +370,7 @@ sort__sym_from_cmp(struct hist_entry *left, struct hist_entry *right)
> if (!from_l->sym && !from_r->sym)
> return right->level - left->level;
>
> - return _sort__sym_cmp(from_l->sym, from_r->sym, from_l->addr,
> - from_r->addr);
> + return _sort__sym_cmp(from_l->sym, from_r->sym);
> }
>
> static int64_t
> @@ -393,7 +382,7 @@ sort__sym_to_cmp(struct hist_entry *left, struct hist_entry *right)
> if (!to_l->sym && !to_r->sym)
> return right->level - left->level;
>
> - return _sort__sym_cmp(to_l->sym, to_r->sym, to_l->addr, to_r->addr);
> + return _sort__sym_cmp(to_l->sym, to_r->sym);
> }
>
> static int hist_entry__sym_from_snprintf(struct hist_entry *self, char *bf,
> --
> 1.7.11.7
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists