On Mon, Feb 10, 2014 at 11:47:20AM +0900, Namhyung Kim wrote: > The --percentage option is for controlling overhead percentage > displayed. It can only receive either of "relative" or "absolute". > > "relative" means it's relative to filtered entries only so that the > sum of shown entries will be always 100%. "absolute" means it retains > the original value before and after the filter is applied.
SNIP > diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c > index 78f4c92e9b73..714f3f00ea55 100644 > --- a/tools/perf/ui/hist.c > +++ b/tools/perf/ui/hist.c > @@ -21,10 +21,13 @@ static int __hpp__fmt(struct perf_hpp *hpp, struct > hist_entry *he, > > if (fmt_percent) { > double percent = 0.0; > + u64 total = hists->stats.total_period; > > - if (hists->stats.total_period) > - percent = 100.0 * get_field(he) / > - hists->stats.total_period; > + if (symbol_conf.filter_relative) > + total = hists->stats.total_filtered_period; > + > + if (total) > + percent = 100.0 * get_field(he) / total; > > ret = print_fn(hpp->buf, hpp->size, fmt, percent); > } else > @@ -41,6 +44,9 @@ static int __hpp__fmt(struct perf_hpp *hpp, struct > hist_entry *he, > u64 period = get_field(pair); > u64 total = pair->hists->stats.total_period; > > + if (symbol_conf.filter_relative) > + total = > pair->hists->stats.total_filtered_period; > + > if (!total) > continue; looks like we could use something like: perf_hists__total_period(hists) { u64 total = hists->stats.total_period; if (symbol_conf.filter_relative) total = hists->stats.total_filtered_period; return total; } probably on other places as well jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/