Messages in this thread Patch in this message | | | Date | Wed, 8 Aug 2012 12:16:30 -0700 | From | Arun Sharma <> | Subject | Re: [PATCH] perf: Add a new sort order: SORT_INCLUSIVE (v6) |
| |
On 3/30/12 10:43 PM, Arun Sharma wrote: > [ Meant to include v6 ChangeLog as well. Technical difficulties.. ] > > v6 ChangeLog: > > rebased to tip:perf/core and fixed a minor problem in computing > the total period in hists__remove_entry_filter(). Needed to > use period_self instead of period.
This patch breaks perf top (symptom: percentages > 100%). Fixed by the following patch.
Namhyung: if you're still working on forward porting this, please add this fix to your queue.
-Arun
commit 75a1c409a529c9741f8a2f493868d1fc7ce7e06d Author: Arun Sharma <asharma@fb.com> Date: Wed Aug 8 11:47:02 2012 -0700
perf: update period_self as well on collapsing When running perf top, we have a series of incoming samples, which get aggregated in various user specified ways. Suppose function "foo" had the following samples: 101, 103, 99, 105, ... ->period for the corresponding entry looks as follows: 101, 204, 303, 408, ... However, due to this bug, ->period_self contains: 101, 103, 99, 105, ... and therefore breaks the invariant period == period_self in the default mode (no sort inclusive). Since total_period is computed by summing up period_self, period/total_period can be > 100% Fix the bug by updating period_self as well. Signed-off-by: Arun Sharma <asharma@fb.com>
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index a2a8d91..adc891e 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c @@ -462,6 +462,7 @@ static bool hists__collapse_insert_entry(struct hists *hists,
if (!cmp) { iter->period += he->period; + iter->period_self += he->period_self; iter->nr_events += he->nr_events; if (symbol_conf.use_callchain) { callchain_cursor_reset(&hists->callchain_cursor);
| |