* [PATCH 1/8] perf sort: Reorder HISTC_SRCLINE index
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-05-31 11:24 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-04-05 1:26 ` [PATCH 2/8] perf sort: Add 'addr' sort key Namhyung Kim
` (6 subsequent siblings)
7 siblings, 1 reply; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
It's in common sort dimension so it'd be more natural to place it with
other common column index.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/hist.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 14c2fe20aa62..6be88dc12b9a 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -43,12 +43,12 @@ enum hist_column {
HISTC_COMM,
HISTC_PARENT,
HISTC_CPU,
+ HISTC_SRCLINE,
HISTC_MISPREDICT,
HISTC_SYMBOL_FROM,
HISTC_SYMBOL_TO,
HISTC_DSO_FROM,
HISTC_DSO_TO,
- HISTC_SRCLINE,
HISTC_LOCAL_WEIGHT,
HISTC_GLOBAL_WEIGHT,
HISTC_MEM_DADDR_SYMBOL,
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [tip:perf/core] perf sort: Reorder HISTC_SRCLINE index
2013-04-05 1:26 ` [PATCH 1/8] perf sort: Reorder HISTC_SRCLINE index Namhyung Kim
@ 2013-05-31 11:24 ` tip-bot for Namhyung Kim
0 siblings, 0 replies; 13+ messages in thread
From: tip-bot for Namhyung Kim @ 2013-05-31 11:24 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, eranian, paulus, hpa, mingo, andi,
a.p.zijlstra, namhyung.kim, namhyung, jolsa, dsahern, tglx
Commit-ID: dfd3b2fd485e3969a30b28e70aabfefa90b81c9c
Gitweb: http://git.kernel.org/tip/dfd3b2fd485e3969a30b28e70aabfefa90b81c9c
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Fri, 5 Apr 2013 10:26:31 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 28 May 2013 16:23:55 +0300
perf sort: Reorder HISTC_SRCLINE index
It's in common sort dimension so it'd be more natural to place it with
other common column index.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1365125198-8334-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/hist.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 14c2fe2..6be88dc 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -43,12 +43,12 @@ enum hist_column {
HISTC_COMM,
HISTC_PARENT,
HISTC_CPU,
+ HISTC_SRCLINE,
HISTC_MISPREDICT,
HISTC_SYMBOL_FROM,
HISTC_SYMBOL_TO,
HISTC_DSO_FROM,
HISTC_DSO_TO,
- HISTC_SRCLINE,
HISTC_LOCAL_WEIGHT,
HISTC_GLOBAL_WEIGHT,
HISTC_MEM_DADDR_SYMBOL,
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/8] perf sort: Add 'addr' sort key
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
2013-04-05 1:26 ` [PATCH 1/8] perf sort: Reorder HISTC_SRCLINE index Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-04-05 1:26 ` [PATCH 3/8] perf sort: Add 'addr_to/from' " Namhyung Kim
` (5 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
New addr sort key provides a way to sort the entries by the symbol
addresses. It can be helpful to figure out symbol resolution problem
when a dso cannot do it properly as well as finding hotpath in a dso
and/or a function.
Suggested-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=55561
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/hist.c | 2 ++
tools/perf/util/hist.h | 1 +
tools/perf/util/sort.c | 29 +++++++++++++++++++++++++++++
tools/perf/util/sort.h | 1 +
4 files changed, 33 insertions(+)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 72b4eec820c3..c098d6ebab1f 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -52,6 +52,8 @@ void hists__reset_col_len(struct hists *hists)
for (col = 0; col < HISTC_NR_COLS; ++col)
hists__set_col_len(hists, col, 0);
+
+ hists__set_col_len(hists, HISTC_ADDR, BITS_PER_LONG / 4 + 2);
}
static void hists__set_unres_dso_col_len(struct hists *hists, int dso)
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 6be88dc12b9a..9599f805828f 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -44,6 +44,7 @@ enum hist_column {
HISTC_PARENT,
HISTC_CPU,
HISTC_SRCLINE,
+ HISTC_ADDR,
HISTC_MISPREDICT,
HISTC_SYMBOL_FROM,
HISTC_SYMBOL_TO,
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 701ab1d84894..1543ab124052 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -343,6 +343,34 @@ struct sort_entry sort_cpu = {
.se_width_idx = HISTC_CPU,
};
+/* --sort addr */
+
+static int64_t
+sort__addr_cmp(struct hist_entry *left, struct hist_entry *right)
+{
+ return right->ip - left->ip;
+}
+
+static int hist_entry__addr_snprintf(struct hist_entry *self, char *bf,
+ size_t size, unsigned int width)
+{
+ struct map *map = self->ms.map;
+ u64 addr = self->ip;
+
+ if (map)
+ addr = map->unmap_ip(map, self->ip);
+
+ return repsep_snprintf(bf, size, "%#*llx", width, addr);
+}
+
+struct sort_entry sort_addr = {
+ .se_header = "Address",
+ .se_cmp = sort__addr_cmp,
+ .se_snprintf = hist_entry__addr_snprintf,
+ .se_width_idx = HISTC_ADDR,
+};
+
+
/* sort keys for branch stacks */
static int64_t
@@ -872,6 +900,7 @@ static struct sort_dimension common_sort_dimensions[] = {
DIM(SORT_PARENT, "parent", sort_parent),
DIM(SORT_CPU, "cpu", sort_cpu),
DIM(SORT_SRCLINE, "srcline", sort_srcline),
+ DIM(SORT_ADDR, "addr", sort_addr),
};
#undef DIM
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
index 51f1b5a854e7..57a6fc1a1f7f 100644
--- a/tools/perf/util/sort.h
+++ b/tools/perf/util/sort.h
@@ -138,6 +138,7 @@ enum sort_type {
SORT_PARENT,
SORT_CPU,
SORT_SRCLINE,
+ SORT_ADDR,
/* branch stack specific sort keys */
__SORT_BRANCH_STACK,
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 3/8] perf sort: Add 'addr_to/from' sort key
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
2013-04-05 1:26 ` [PATCH 1/8] perf sort: Reorder HISTC_SRCLINE index Namhyung Kim
2013-04-05 1:26 ` [PATCH 2/8] perf sort: Add 'addr' sort key Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-04-05 1:26 ` [PATCH 4/8] perf sort: Update documentation for sort keys Namhyung Kim
` (4 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
New addr_{to,from} sort keys provide a way to sort the entries by the
source/target symbol addresses.
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/hist.c | 2 ++
tools/perf/util/hist.h | 2 ++
tools/perf/util/sort.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
tools/perf/util/sort.h | 2 ++
4 files changed, 54 insertions(+)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index c098d6ebab1f..1fb1535940f8 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -54,6 +54,8 @@ void hists__reset_col_len(struct hists *hists)
hists__set_col_len(hists, col, 0);
hists__set_col_len(hists, HISTC_ADDR, BITS_PER_LONG / 4 + 2);
+ hists__set_col_len(hists, HISTC_ADDR_FROM, BITS_PER_LONG / 4 + 2);
+ hists__set_col_len(hists, HISTC_ADDR_TO, BITS_PER_LONG / 4 + 2);
}
static void hists__set_unres_dso_col_len(struct hists *hists, int dso)
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index 9599f805828f..2640fcc566e9 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -50,6 +50,8 @@ enum hist_column {
HISTC_SYMBOL_TO,
HISTC_DSO_FROM,
HISTC_DSO_TO,
+ HISTC_ADDR_FROM,
+ HISTC_ADDR_TO,
HISTC_LOCAL_WEIGHT,
HISTC_GLOBAL_WEIGHT,
HISTC_MEM_DADDR_SYMBOL,
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 1543ab124052..e4388cbda8ce 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -443,6 +443,38 @@ static int hist_entry__sym_to_snprintf(struct hist_entry *self, char *bf,
}
+static int64_t
+sort__addr_from_cmp(struct hist_entry *left, struct hist_entry *right)
+{
+ struct addr_map_symbol *from_l = &left->branch_info->from;
+ struct addr_map_symbol *from_r = &right->branch_info->from;
+
+ return from_r->addr - from_l->addr;
+}
+
+static int hist_entry__addr_from_snprintf(struct hist_entry *self, char *bf,
+ size_t size, unsigned int width)
+{
+ struct addr_map_symbol *from = &self->branch_info->from;
+ return repsep_snprintf(bf, size, "%#*llx", width, from->addr);
+}
+
+static int64_t
+sort__addr_to_cmp(struct hist_entry *left, struct hist_entry *right)
+{
+ struct addr_map_symbol *to_l = &left->branch_info->to;
+ struct addr_map_symbol *to_r = &right->branch_info->to;
+
+ return to_r->addr - to_l->addr;
+}
+
+static int hist_entry__addr_to_snprintf(struct hist_entry *self, char *bf,
+ size_t size, unsigned int width)
+{
+ struct addr_map_symbol *to = &self->branch_info->to;
+ return repsep_snprintf(bf, size, "%#*llx", width, to->addr);
+}
+
struct sort_entry sort_dso_from = {
.se_header = "Source Shared Object",
.se_cmp = sort__dso_from_cmp,
@@ -471,6 +503,20 @@ struct sort_entry sort_sym_to = {
.se_width_idx = HISTC_SYMBOL_TO,
};
+struct sort_entry sort_addr_from = {
+ .se_header = "Source Address",
+ .se_cmp = sort__addr_from_cmp,
+ .se_snprintf = hist_entry__addr_from_snprintf,
+ .se_width_idx = HISTC_ADDR_FROM,
+};
+
+struct sort_entry sort_addr_to = {
+ .se_header = "Target Address",
+ .se_cmp = sort__addr_to_cmp,
+ .se_snprintf = hist_entry__addr_to_snprintf,
+ .se_width_idx = HISTC_ADDR_TO,
+};
+
static int64_t
sort__mispredict_cmp(struct hist_entry *left, struct hist_entry *right)
{
@@ -912,6 +958,8 @@ static struct sort_dimension bstack_sort_dimensions[] = {
DIM(SORT_DSO_TO, "dso_to", sort_dso_to),
DIM(SORT_SYM_FROM, "symbol_from", sort_sym_from),
DIM(SORT_SYM_TO, "symbol_to", sort_sym_to),
+ DIM(SORT_ADDR_FROM, "addr_from", sort_addr_from),
+ DIM(SORT_ADDR_TO, "addr_to", sort_addr_to),
DIM(SORT_MISPREDICT, "mispredict", sort_mispredict),
};
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h
index 57a6fc1a1f7f..c80aac4ae3a2 100644
--- a/tools/perf/util/sort.h
+++ b/tools/perf/util/sort.h
@@ -146,6 +146,8 @@ enum sort_type {
SORT_DSO_TO,
SORT_SYM_FROM,
SORT_SYM_TO,
+ SORT_ADDR_FROM,
+ SORT_ADDR_TO,
SORT_MISPREDICT,
/* memory mode specific sort keys */
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 4/8] perf sort: Update documentation for sort keys
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
` (2 preceding siblings ...)
2013-04-05 1:26 ` [PATCH 3/8] perf sort: Add 'addr_to/from' " Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-04-05 1:26 ` [PATCH 5/8] perf hists: Move column length setting code Namhyung Kim
` (3 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
Update and add missing description of new sort keys.
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/Documentation/perf-diff.txt | 2 +-
tools/perf/Documentation/perf-report.txt | 5 ++++-
tools/perf/Documentation/perf-top.txt | 2 +-
tools/perf/builtin-diff.c | 2 +-
tools/perf/builtin-report.c | 6 +++---
tools/perf/builtin-top.c | 3 ++-
6 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/tools/perf/Documentation/perf-diff.txt b/tools/perf/Documentation/perf-diff.txt
index 5b3123d5721f..f74ec064db0e 100644
--- a/tools/perf/Documentation/perf-diff.txt
+++ b/tools/perf/Documentation/perf-diff.txt
@@ -47,7 +47,7 @@ OPTIONS
-s::
--sort=::
- Sort by key(s): pid, comm, dso, symbol.
+ Sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline, addr.
-t::
--field-separator=::
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index 7d5f4f38aa52..54acc51995fc 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -59,7 +59,7 @@ OPTIONS
--sort=::
Sort histogram entries by given key(s) - multiple keys can be specified
in CSV format. Following sort keys are available:
- pid, comm, dso, symbol, parent, cpu, srcline, weight, local_weight.
+ pid, comm, dso, symbol, parent, cpu, srcline, addr.
Each key has following meaning:
@@ -72,6 +72,7 @@ OPTIONS
- cpu: cpu number the task ran at the time of sample
- srcline: filename and line number executed at the time of sample. The
DWARF debuggin info must be provided.
+ - addr: address of function executed at the time of sample
By default, comm, dso and symbol keys are used.
(i.e. --sort comm,dso,symbol)
@@ -84,6 +85,8 @@ OPTIONS
- dso_to: name of library or module branched to
- symbol_from: name of function branched from
- symbol_to: name of function branched to
+ - addr_from: address of function branched from
+ - addr_to: address of function branched to
- mispredict: "N" for predicted branch, "Y" for mispredicted branch
And default sort keys are changed to comm, dso_from, symbol_from, dso_to
diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt
index 9f1a2fe54757..2b45e799c4be 100644
--- a/tools/perf/Documentation/perf-top.txt
+++ b/tools/perf/Documentation/perf-top.txt
@@ -112,7 +112,7 @@ Default is to monitor all CPUS.
-s::
--sort::
- Sort by key(s): pid, comm, dso, symbol, parent, srcline, weight, local_weight.
+ Sort by key(s): pid, comm, dso, symbol, parent, srcline, cpu, addr.
-n::
--show-nr-samples::
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
index cabbea5f0bc2..316bf13e59c7 100644
--- a/tools/perf/builtin-diff.c
+++ b/tools/perf/builtin-diff.c
@@ -542,7 +542,7 @@ static const struct option options[] = {
OPT_STRING('S', "symbols", &symbol_conf.sym_list_str, "symbol[,symbol...]",
"only consider these symbols"),
OPT_STRING('s', "sort", &sort_order, "key[,key2...]",
- "sort by key(s): pid, comm, dso, symbol, parent"),
+ "sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline, addr"),
OPT_STRING('t', "field-separator", &symbol_conf.field_sep, "separator",
"separator for columns, no spaces will be added between "
"columns '.' is reserved."),
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index d45bf9b0361d..bff244fa4b5d 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -756,9 +756,9 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
"Use the stdio interface"),
OPT_STRING('s', "sort", &sort_order, "key[,key2...]",
"sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline,"
- " dso_to, dso_from, symbol_to, symbol_from, mispredict,"
- " weight, local_weight, mem, symbol_daddr, dso_daddr, tlb, "
- "snoop, locked"),
+ " addr, dso_to, dso_from, symbol_to, symbol_from, addr_to,"
+ " addr_from, mispredict, weight, local_weight, mem,"
+ " symbol_daddr, dso_daddr, tlb, snoop, locked"),
OPT_BOOLEAN(0, "showcpuutilization", &symbol_conf.show_cpu_utilization,
"Show sample percentage for different cpu modes"),
OPT_STRING('p', "parent", &parent_pattern, "regex",
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 2eb272d8753c..fbb472c52440 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -1089,7 +1089,8 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
OPT_INCR('v', "verbose", &verbose,
"be more verbose (show counter open errors, etc)"),
OPT_STRING('s', "sort", &sort_order, "key[,key2...]",
- "sort by key(s): pid, comm, dso, symbol, parent, weight, local_weight"),
+ "sort by key(s): pid, comm, dso, symbol, parent, cpu,"
+ " srcline, addr"),
OPT_BOOLEAN('n', "show-nr-samples", &symbol_conf.show_nr_samples,
"Show a column with the number of samples"),
OPT_CALLBACK_DEFAULT('G', "call-graph", &top.record_opts,
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 5/8] perf hists: Move column length setting code
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
` (3 preceding siblings ...)
2013-04-05 1:26 ` [PATCH 4/8] perf sort: Update documentation for sort keys Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-04-05 1:26 ` [PATCH 6/8] perf sort: Cleanup sort__has_sym setting Namhyung Kim
` (2 subsequent siblings)
7 siblings, 0 replies; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
They are set to constant length so no need to update every time.
Cc: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/hist.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 1fb1535940f8..e144aefc76e6 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -56,6 +56,12 @@ void hists__reset_col_len(struct hists *hists)
hists__set_col_len(hists, HISTC_ADDR, BITS_PER_LONG / 4 + 2);
hists__set_col_len(hists, HISTC_ADDR_FROM, BITS_PER_LONG / 4 + 2);
hists__set_col_len(hists, HISTC_ADDR_TO, BITS_PER_LONG / 4 + 2);
+ hists__set_col_len(hists, HISTC_LOCAL_WEIGHT, 12);
+ hists__set_col_len(hists, HISTC_GLOBAL_WEIGHT, 12);
+ hists__set_col_len(hists, HISTC_MEM_LOCKED, 6);
+ hists__set_col_len(hists, HISTC_MEM_TLB, 22);
+ hists__set_col_len(hists, HISTC_MEM_SNOOP, 12);
+ hists__set_col_len(hists, HISTC_MEM_LVL, 21 + 3);
}
static void hists__set_unres_dso_col_len(struct hists *hists, int dso)
@@ -156,13 +162,6 @@ void hists__calc_col_len(struct hists *hists, struct hist_entry *h)
hists__new_col_len(hists, HISTC_MEM_DADDR_SYMBOL, symlen);
hists__set_unres_dso_col_len(hists, HISTC_MEM_DADDR_DSO);
}
-
- hists__new_col_len(hists, HISTC_MEM_LOCKED, 6);
- hists__new_col_len(hists, HISTC_MEM_TLB, 22);
- hists__new_col_len(hists, HISTC_MEM_SNOOP, 12);
- hists__new_col_len(hists, HISTC_MEM_LVL, 21 + 3);
- hists__new_col_len(hists, HISTC_LOCAL_WEIGHT, 12);
- hists__new_col_len(hists, HISTC_GLOBAL_WEIGHT, 12);
}
void hists__output_recalc_col_len(struct hists *hists, int max_rows)
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 6/8] perf sort: Cleanup sort__has_sym setting
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
` (4 preceding siblings ...)
2013-04-05 1:26 ` [PATCH 5/8] perf hists: Move column length setting code Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-05-31 11:25 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-04-05 1:26 ` [PATCH 7/8] perf top: Use sort__has_sym Namhyung Kim
2013-04-05 1:26 ` [PATCH 8/8] perf hist browser: " Namhyung Kim
7 siblings, 1 reply; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
The sort__has_sym variable is set only if a symbol-related sort key
was added. Since branch stack and memory sort dimensions are
separated, it doesn't need to be checked from common dimension.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/util/sort.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index e4388cbda8ce..55217be009bb 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -1015,10 +1015,7 @@ int sort_dimension__add(const char *tok)
return -EINVAL;
}
sort__has_parent = 1;
- } else if (sd->entry == &sort_sym ||
- sd->entry == &sort_sym_from ||
- sd->entry == &sort_sym_to ||
- sd->entry == &sort_mem_daddr_sym) {
+ } else if (sd->entry == &sort_sym) {
sort__has_sym = 1;
}
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [tip:perf/core] perf sort: Cleanup sort__has_sym setting
2013-04-05 1:26 ` [PATCH 6/8] perf sort: Cleanup sort__has_sym setting Namhyung Kim
@ 2013-05-31 11:25 ` tip-bot for Namhyung Kim
0 siblings, 0 replies; 13+ messages in thread
From: tip-bot for Namhyung Kim @ 2013-05-31 11:25 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, eranian, paulus, hpa, mingo, andi,
a.p.zijlstra, namhyung.kim, namhyung, jolsa, dsahern, tglx
Commit-ID: 930477bdc227adbbff1d42ec9eba50a805cc9b78
Gitweb: http://git.kernel.org/tip/930477bdc227adbbff1d42ec9eba50a805cc9b78
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Fri, 5 Apr 2013 10:26:36 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 28 May 2013 16:23:56 +0300
perf sort: Cleanup sort__has_sym setting
The sort__has_sym variable is set only if a symbol-related sort key was
added. Since branch stack and memory sort dimensions are separated, it
doesn't need to be checked from common dimension.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1365125198-8334-7-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/sort.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 701ab1d..313a5a7 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -938,10 +938,7 @@ int sort_dimension__add(const char *tok)
return -EINVAL;
}
sort__has_parent = 1;
- } else if (sd->entry == &sort_sym ||
- sd->entry == &sort_sym_from ||
- sd->entry == &sort_sym_to ||
- sd->entry == &sort_mem_daddr_sym) {
+ } else if (sd->entry == &sort_sym) {
sort__has_sym = 1;
}
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 7/8] perf top: Use sort__has_sym
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
` (5 preceding siblings ...)
2013-04-05 1:26 ` [PATCH 6/8] perf sort: Cleanup sort__has_sym setting Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-05-31 11:26 ` [tip:perf/core] " tip-bot for Namhyung Kim
2013-04-05 1:26 ` [PATCH 8/8] perf hist browser: " Namhyung Kim
7 siblings, 1 reply; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
perf top had a similar variable sort_has_symbols for the same purpose.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/builtin-top.c | 12 +++---------
tools/perf/util/top.h | 1 -
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index fbb472c52440..fe4acf568483 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -794,7 +794,7 @@ static void perf_event__process_sample(struct perf_tool *tool,
return;
}
- if (top->sort_has_symbols)
+ if (sort__has_sym)
perf_top__record_precise_ip(top, he, evsel->idx, ip);
}
@@ -912,9 +912,9 @@ out_err:
return -1;
}
-static int perf_top__setup_sample_type(struct perf_top *top)
+static int perf_top__setup_sample_type(struct perf_top *top __maybe_unused)
{
- if (!top->sort_has_symbols) {
+ if (!sort__has_sym) {
if (symbol_conf.use_callchain) {
ui__error("Selected -g but \"sym\" not present in --sort/-s.");
return -EINVAL;
@@ -1203,12 +1203,6 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
sort__setup_elide(stdout);
- /*
- * Avoid annotation data structures overhead when symbols aren't on the
- * sort list.
- */
- top.sort_has_symbols = sort_sym.list.next != NULL;
-
get_term_dimensions(&top.winsize);
if (top.print_entries == 0) {
struct sigaction act = {
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
index 7ebf357dc9e1..f0a862539ba9 100644
--- a/tools/perf/util/top.h
+++ b/tools/perf/util/top.h
@@ -26,7 +26,6 @@ struct perf_top {
int print_entries, count_filter, delay_secs;
bool hide_kernel_symbols, hide_user_symbols, zero;
bool use_tui, use_stdio;
- bool sort_has_symbols;
bool kptr_restrict_warned;
bool vmlinux_warned;
bool dump_symtab;
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [tip:perf/core] perf top: Use sort__has_sym
2013-04-05 1:26 ` [PATCH 7/8] perf top: Use sort__has_sym Namhyung Kim
@ 2013-05-31 11:26 ` tip-bot for Namhyung Kim
0 siblings, 0 replies; 13+ messages in thread
From: tip-bot for Namhyung Kim @ 2013-05-31 11:26 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, eranian, paulus, hpa, mingo, andi,
a.p.zijlstra, namhyung.kim, namhyung, jolsa, dsahern, tglx
Commit-ID: 8f0f684b7b640caeca319f7f4e18474d099d8606
Gitweb: http://git.kernel.org/tip/8f0f684b7b640caeca319f7f4e18474d099d8606
Author: Namhyung Kim <namhyung.kim@lge.com>
AuthorDate: Fri, 5 Apr 2013 10:26:37 +0900
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 28 May 2013 16:23:56 +0300
perf top: Use sort__has_sym
perf top had a similar variable sort_has_symbols for the same purpose.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1365125198-8334-8-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-top.c | 12 +++---------
tools/perf/util/top.h | 1 -
2 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 2eb272d..df9e06a 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -794,7 +794,7 @@ static void perf_event__process_sample(struct perf_tool *tool,
return;
}
- if (top->sort_has_symbols)
+ if (sort__has_sym)
perf_top__record_precise_ip(top, he, evsel->idx, ip);
}
@@ -912,9 +912,9 @@ out_err:
return -1;
}
-static int perf_top__setup_sample_type(struct perf_top *top)
+static int perf_top__setup_sample_type(struct perf_top *top __maybe_unused)
{
- if (!top->sort_has_symbols) {
+ if (!sort__has_sym) {
if (symbol_conf.use_callchain) {
ui__error("Selected -g but \"sym\" not present in --sort/-s.");
return -EINVAL;
@@ -1202,12 +1202,6 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
sort__setup_elide(stdout);
- /*
- * Avoid annotation data structures overhead when symbols aren't on the
- * sort list.
- */
- top.sort_has_symbols = sort_sym.list.next != NULL;
-
get_term_dimensions(&top.winsize);
if (top.print_entries == 0) {
struct sigaction act = {
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h
index 7ebf357..f0a8625 100644
--- a/tools/perf/util/top.h
+++ b/tools/perf/util/top.h
@@ -26,7 +26,6 @@ struct perf_top {
int print_entries, count_filter, delay_secs;
bool hide_kernel_symbols, hide_user_symbols, zero;
bool use_tui, use_stdio;
- bool sort_has_symbols;
bool kptr_restrict_warned;
bool vmlinux_warned;
bool dump_symtab;
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 8/8] perf hist browser: Use sort__has_sym
2013-04-05 1:26 [PATCHSET 0/8] perf tools: Cleanup for sort keys (v3) Namhyung Kim
` (6 preceding siblings ...)
2013-04-05 1:26 ` [PATCH 7/8] perf top: Use sort__has_sym Namhyung Kim
@ 2013-04-05 1:26 ` Namhyung Kim
2013-05-31 11:28 ` [tip:perf/core] perf hists " tip-bot for Arnaldo Carvalho de Melo
7 siblings, 1 reply; 13+ messages in thread
From: Namhyung Kim @ 2013-04-05 1:26 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, Namhyung Kim, LKML,
Stephane Eranian, Andi Kleen, Jiri Olsa, David Ahern
From: Namhyung Kim <namhyung.kim@lge.com>
The TUI hist browser had a similar variable has_symbols for the same
purpose. Let's get rid of the duplication.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
tools/perf/ui/browsers/hists.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index cad8e37f05d9..a4268cab1921 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -25,7 +25,6 @@ struct hist_browser {
struct map_symbol *selection;
int print_seq;
bool show_dso;
- bool has_symbols;
};
extern void hist_browser__init_hpp(void);
@@ -1155,10 +1154,6 @@ static struct hist_browser *hist_browser__new(struct hists *hists)
browser->b.refresh = hist_browser__refresh;
browser->b.seek = ui_browser__hists_seek;
browser->b.use_navkeypressed = true;
- if (sort__mode == SORT_MODE__BRANCH)
- browser->has_symbols = sort_sym_from.list.next != NULL;
- else
- browser->has_symbols = sort_sym.list.next != NULL;
}
return browser;
@@ -1386,7 +1381,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
*/
goto out_free_stack;
case 'a':
- if (!browser->has_symbols) {
+ if (!sort__has_sym) {
ui_browser__warning(&browser->b, delay_secs * 2,
"Annotation is only available for symbolic views, "
"include \"sym*\" in --sort to use it.");
@@ -1485,7 +1480,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
continue;
}
- if (!browser->has_symbols)
+ if (!sort__has_sym)
goto add_exit_option;
if (sort__mode == SORT_MODE__BRANCH) {
--
1.7.11.7
^ permalink raw reply related [flat|nested] 13+ messages in thread* [tip:perf/core] perf hists browser: Use sort__has_sym
2013-04-05 1:26 ` [PATCH 8/8] perf hist browser: " Namhyung Kim
@ 2013-05-31 11:28 ` tip-bot for Arnaldo Carvalho de Melo
0 siblings, 0 replies; 13+ messages in thread
From: tip-bot for Arnaldo Carvalho de Melo @ 2013-05-31 11:28 UTC (permalink / raw)
To: linux-tip-commits
Cc: linux-kernel, eranian, paulus, acme, hpa, mingo, andi,
a.p.zijlstra, namhyung, jolsa, dsahern, tglx
Commit-ID: 9c796ec8dbc8dbfe41ce35a1ccb1b59b47148daf
Gitweb: http://git.kernel.org/tip/9c796ec8dbc8dbfe41ce35a1ccb1b59b47148daf
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
AuthorDate: Fri, 26 Apr 2013 14:28:46 -0300
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 28 May 2013 16:23:56 +0300
perf hists browser: Use sort__has_sym
The TUI hist browser had a similar variable has_symbols for the same
purpose. Let's get rid of the duplication.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1365125198-8334-9-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/ui/browsers/hists.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index cad8e37..a4268ca 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -25,7 +25,6 @@ struct hist_browser {
struct map_symbol *selection;
int print_seq;
bool show_dso;
- bool has_symbols;
};
extern void hist_browser__init_hpp(void);
@@ -1155,10 +1154,6 @@ static struct hist_browser *hist_browser__new(struct hists *hists)
browser->b.refresh = hist_browser__refresh;
browser->b.seek = ui_browser__hists_seek;
browser->b.use_navkeypressed = true;
- if (sort__mode == SORT_MODE__BRANCH)
- browser->has_symbols = sort_sym_from.list.next != NULL;
- else
- browser->has_symbols = sort_sym.list.next != NULL;
}
return browser;
@@ -1386,7 +1381,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
*/
goto out_free_stack;
case 'a':
- if (!browser->has_symbols) {
+ if (!sort__has_sym) {
ui_browser__warning(&browser->b, delay_secs * 2,
"Annotation is only available for symbolic views, "
"include \"sym*\" in --sort to use it.");
@@ -1485,7 +1480,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
continue;
}
- if (!browser->has_symbols)
+ if (!sort__has_sym)
goto add_exit_option;
if (sort__mode == SORT_MODE__BRANCH) {
^ permalink raw reply related [flat|nested] 13+ messages in thread