Messages in this thread Patch in this message | | | From | Namhyung Kim <> | Subject | [PATCH 2/5] perf ui/tui: Add support for showing relative percentage | Date | Tue, 14 Jan 2014 13:43:16 +0900 |
| |
When filtering by thread, dso or symbol on TUI it also update total period so that the output shows different result than no filter - the percentage changed to relative to filtered entries only. Sometimes (always?) this is not desired since users might expect same results with filter.
So change this behavior depends on symbol_conf.filter_relative value.
Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/util/hist.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index 2d81f3aefad0..58c799d9b689 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -696,10 +696,11 @@ static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h return; ++hists->nr_entries; + if (symbol_conf.filter_relative) + hists->stats.total_period += h->stat.period; if (h->ms.unfolded) hists->nr_entries += h->nr_rows; h->row_offset = 0; - hists->stats.total_period += h->stat.period; hists->stats.nr_events[PERF_RECORD_SAMPLE] += h->stat.nr_events; hists__calc_col_len(hists, h); @@ -722,7 +723,9 @@ void hists__filter_by_dso(struct hists *hists) { struct rb_node *nd; - hists->nr_entries = hists->stats.total_period = 0; + hists->nr_entries = 0; + if (symbol_conf.filter_relative) + hists->stats.total_period = 0; hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0; hists__reset_col_len(hists); @@ -755,7 +758,9 @@ void hists__filter_by_thread(struct hists *hists) { struct rb_node *nd; - hists->nr_entries = hists->stats.total_period = 0; + hists->nr_entries = 0; + if (symbol_conf.filter_relative) + hists->stats.total_period = 0; hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0; hists__reset_col_len(hists); @@ -786,7 +791,9 @@ void hists__filter_by_symbol(struct hists *hists) { struct rb_node *nd; - hists->nr_entries = hists->stats.total_period = 0; + hists->nr_entries = 0; + if (symbol_conf.filter_relative) + hists->stats.total_period = 0; hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0; hists__reset_col_len(hists); -- 1.7.11.7
| |