[PATCH 01/12] perf annotate: Pass evsel instead of evidx on annotation functions

2013-03-04 Thread Namhyung Kim
From: Namhyung Kim 

Pass evsel instead of evidx.  This is a preparation for supporting
event group view in annotation and no functional change is intended.

Signed-off-by: Namhyung Kim 
---
 tools/perf/builtin-annotate.c | 16 +---
 tools/perf/builtin-top.c  |  2 +-
 tools/perf/ui/browsers/annotate.c | 30 +-
 tools/perf/ui/browsers/hists.c|  2 +-
 tools/perf/ui/gtk/annotate.c  | 10 ++
 tools/perf/util/annotate.c| 36 +++-
 tools/perf/util/annotate.h| 36 +++-
 tools/perf/util/hist.h|  5 +++--
 8 files changed, 75 insertions(+), 62 deletions(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 2e6961ea3184..2f015a99481b 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -109,14 +109,16 @@ static int process_sample_event(struct perf_tool *tool,
return 0;
 }
 
-static int hist_entry__tty_annotate(struct hist_entry *he, int evidx,
+static int hist_entry__tty_annotate(struct hist_entry *he,
+   struct perf_evsel *evsel,
struct perf_annotate *ann)
 {
-   return symbol__tty_annotate(he->ms.sym, he->ms.map, evidx,
+   return symbol__tty_annotate(he->ms.sym, he->ms.map, evsel,
ann->print_line, ann->full_paths, 0, 0);
 }
 
-static void hists__find_annotations(struct hists *self, int evidx,
+static void hists__find_annotations(struct hists *self,
+   struct perf_evsel *evsel,
struct perf_annotate *ann)
 {
struct rb_node *nd = rb_first(>entries), *next;
@@ -142,14 +144,14 @@ find_next:
if (use_browser == 2) {
int ret;
 
-   ret = hist_entry__gtk_annotate(he, evidx, NULL);
+   ret = hist_entry__gtk_annotate(he, evsel, NULL);
if (!ret || !ann->skip_missing)
return;
 
/* skip missing symbols */
nd = rb_next(nd);
} else if (use_browser == 1) {
-   key = hist_entry__tui_annotate(he, evidx, NULL);
+   key = hist_entry__tui_annotate(he, evsel, NULL);
switch (key) {
case -1:
if (!ann->skip_missing)
@@ -168,7 +170,7 @@ find_next:
if (next != NULL)
nd = next;
} else {
-   hist_entry__tty_annotate(he, evidx, ann);
+   hist_entry__tty_annotate(he, evsel, ann);
nd = rb_next(nd);
/*
 * Since we have a hist_entry per IP for the same
@@ -230,7 +232,7 @@ static int __cmd_annotate(struct perf_annotate *ann)
total_nr_samples += nr_samples;
hists__collapse_resort(hists);
hists__output_resort(hists);
-   hists__find_annotations(hists, pos->idx, ann);
+   hists__find_annotations(hists, pos, ann);
}
}
 
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 72f6eb7b4173..1dcce3229efa 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -231,7 +231,7 @@ static void perf_top__show_details(struct perf_top *top)
printf("Showing %s for %s\n", perf_evsel__name(top->sym_evsel), 
symbol->name);
printf("  Events  Pcnt (>=%d%%)\n", top->sym_pcnt_filter);
 
-   more = symbol__annotate_printf(symbol, he->ms.map, top->sym_evsel->idx,
+   more = symbol__annotate_printf(symbol, he->ms.map, top->sym_evsel,
   0, top->sym_pcnt_filter, 
top->print_entries, 4);
if (top->zero)
symbol__annotate_zero_histogram(symbol, top->sym_evsel->idx);
diff --git a/tools/perf/ui/browsers/annotate.c 
b/tools/perf/ui/browsers/annotate.c
index 7dca1555c610..67798472384b 100644
--- a/tools/perf/ui/browsers/annotate.c
+++ b/tools/perf/ui/browsers/annotate.c
@@ -8,6 +8,7 @@
 #include "../../util/hist.h"
 #include "../../util/sort.h"
 #include "../../util/symbol.h"
+#include "../../util/evsel.h"
 #include 
 #include 
 
@@ -331,7 +332,7 @@ static void annotate_browser__set_rb_top(struct 
annotate_browser *browser,
 }
 
 static void annotate_browser__calc_percent(struct annotate_browser *browser,
-  int evidx)
+  struct perf_evsel *evsel)
 {
struct map_symbol *ms = browser->b.priv;
struct symbol *sym = ms->sym;
@@ -344,7 +345,7 @@ static void annotate_browser__calc_percent(struct 
annotate_browser *browser,
 

[PATCH 01/12] perf annotate: Pass evsel instead of evidx on annotation functions

2013-03-04 Thread Namhyung Kim
From: Namhyung Kim namhyung@lge.com

Pass evsel instead of evidx.  This is a preparation for supporting
event group view in annotation and no functional change is intended.

Signed-off-by: Namhyung Kim namhy...@kernel.org
---
 tools/perf/builtin-annotate.c | 16 +---
 tools/perf/builtin-top.c  |  2 +-
 tools/perf/ui/browsers/annotate.c | 30 +-
 tools/perf/ui/browsers/hists.c|  2 +-
 tools/perf/ui/gtk/annotate.c  | 10 ++
 tools/perf/util/annotate.c| 36 +++-
 tools/perf/util/annotate.h| 36 +++-
 tools/perf/util/hist.h|  5 +++--
 8 files changed, 75 insertions(+), 62 deletions(-)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 2e6961ea3184..2f015a99481b 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -109,14 +109,16 @@ static int process_sample_event(struct perf_tool *tool,
return 0;
 }
 
-static int hist_entry__tty_annotate(struct hist_entry *he, int evidx,
+static int hist_entry__tty_annotate(struct hist_entry *he,
+   struct perf_evsel *evsel,
struct perf_annotate *ann)
 {
-   return symbol__tty_annotate(he-ms.sym, he-ms.map, evidx,
+   return symbol__tty_annotate(he-ms.sym, he-ms.map, evsel,
ann-print_line, ann-full_paths, 0, 0);
 }
 
-static void hists__find_annotations(struct hists *self, int evidx,
+static void hists__find_annotations(struct hists *self,
+   struct perf_evsel *evsel,
struct perf_annotate *ann)
 {
struct rb_node *nd = rb_first(self-entries), *next;
@@ -142,14 +144,14 @@ find_next:
if (use_browser == 2) {
int ret;
 
-   ret = hist_entry__gtk_annotate(he, evidx, NULL);
+   ret = hist_entry__gtk_annotate(he, evsel, NULL);
if (!ret || !ann-skip_missing)
return;
 
/* skip missing symbols */
nd = rb_next(nd);
} else if (use_browser == 1) {
-   key = hist_entry__tui_annotate(he, evidx, NULL);
+   key = hist_entry__tui_annotate(he, evsel, NULL);
switch (key) {
case -1:
if (!ann-skip_missing)
@@ -168,7 +170,7 @@ find_next:
if (next != NULL)
nd = next;
} else {
-   hist_entry__tty_annotate(he, evidx, ann);
+   hist_entry__tty_annotate(he, evsel, ann);
nd = rb_next(nd);
/*
 * Since we have a hist_entry per IP for the same
@@ -230,7 +232,7 @@ static int __cmd_annotate(struct perf_annotate *ann)
total_nr_samples += nr_samples;
hists__collapse_resort(hists);
hists__output_resort(hists);
-   hists__find_annotations(hists, pos-idx, ann);
+   hists__find_annotations(hists, pos, ann);
}
}
 
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index 72f6eb7b4173..1dcce3229efa 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -231,7 +231,7 @@ static void perf_top__show_details(struct perf_top *top)
printf(Showing %s for %s\n, perf_evsel__name(top-sym_evsel), 
symbol-name);
printf(  Events  Pcnt (=%d%%)\n, top-sym_pcnt_filter);
 
-   more = symbol__annotate_printf(symbol, he-ms.map, top-sym_evsel-idx,
+   more = symbol__annotate_printf(symbol, he-ms.map, top-sym_evsel,
   0, top-sym_pcnt_filter, 
top-print_entries, 4);
if (top-zero)
symbol__annotate_zero_histogram(symbol, top-sym_evsel-idx);
diff --git a/tools/perf/ui/browsers/annotate.c 
b/tools/perf/ui/browsers/annotate.c
index 7dca1555c610..67798472384b 100644
--- a/tools/perf/ui/browsers/annotate.c
+++ b/tools/perf/ui/browsers/annotate.c
@@ -8,6 +8,7 @@
 #include ../../util/hist.h
 #include ../../util/sort.h
 #include ../../util/symbol.h
+#include ../../util/evsel.h
 #include pthread.h
 #include newt.h
 
@@ -331,7 +332,7 @@ static void annotate_browser__set_rb_top(struct 
annotate_browser *browser,
 }
 
 static void annotate_browser__calc_percent(struct annotate_browser *browser,
-  int evidx)
+  struct perf_evsel *evsel)
 {
struct map_symbol *ms = browser-b.priv;
struct symbol *sym = ms-sym;
@@ -344,7 +345,7 @@ static void annotate_browser__calc_percent(struct 
annotate_browser *browser,