perf ui/gtk: Fix callchain display
authorNamhyung Kim <namhyung@kernel.org>
Fri, 23 May 2014 09:49:33 +0000 (18:49 +0900)
committerJiri Olsa <jolsa@kernel.org>
Sun, 1 Jun 2014 12:35:09 +0000 (14:35 +0200)
With current output field change, GTK browser cannot display callchain
information correctly since it couldn't determine where the symbol
column is.  This is a problem - just for now I changed to use the last
column since it'll work for most cases.

Also it has a same problem of the percentage as stdio code.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Arun Sharma <asharma@fb.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Link: http://lkml.kernel.org/r/1401335910-16832-25-git-send-email-namhyung@kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
tools/perf/ui/gtk/hists.c

index 03d6812d25dd4066c3db7537bdc74086d998b463..6ca60e482cdc2594382466bbaecdde12462dfbec 100644 (file)
@@ -198,6 +198,13 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists,
                if (perf_hpp__should_skip(fmt))
                        continue;
 
+               /*
+                * XXX no way to determine where symcol column is..
+                *     Just use last column for now.
+                */
+               if (perf_hpp__is_sort_entry(fmt))
+                       sym_col = col_idx;
+
                fmt->header(fmt, &hpp, hists_to_evsel(hists));
 
                gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view),
@@ -253,7 +260,8 @@ static void perf_gtk__show_hists(GtkWidget *window, struct hists *hists,
 
                if (symbol_conf.use_callchain && sort__has_sym) {
                        if (callchain_param.mode == CHAIN_GRAPH_REL)
-                               total = h->stat.period;
+                               total = symbol_conf.cumulate_callchain ?
+                                       h->stat_acc->period : h->stat.period;
 
                        perf_gtk__add_callchain(&h->sorted_chain, store, &iter,
                                                sym_col, total);