提交 3186b681 编写于 作者: N Namhyung Kim 提交者: Jiri Olsa

perf hists: Add missing update on filtered stats in hists__decay_entries()

When a filter is used for perf top, its hists->nr_non_filtered_entries
was not updated after it removed an entry in hists__decay_entries().
Also hists->stats.total_non_filtered_period was missed too.
Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1398327843-31845-8-git-send-email-namhyung@kernel.orgSigned-off-by: NJiri Olsa <jolsa@kernel.org>
上级 820bc81f
...@@ -225,14 +225,18 @@ static void he_stat__decay(struct he_stat *he_stat) ...@@ -225,14 +225,18 @@ static void he_stat__decay(struct he_stat *he_stat)
static bool hists__decay_entry(struct hists *hists, struct hist_entry *he) static bool hists__decay_entry(struct hists *hists, struct hist_entry *he)
{ {
u64 prev_period = he->stat.period; u64 prev_period = he->stat.period;
u64 diff;
if (prev_period == 0) if (prev_period == 0)
return true; return true;
he_stat__decay(&he->stat); he_stat__decay(&he->stat);
diff = prev_period - he->stat.period;
hists->stats.total_period -= diff;
if (!he->filtered) if (!he->filtered)
hists->stats.total_period -= prev_period - he->stat.period; hists->stats.total_non_filtered_period -= diff;
return he->stat.period == 0; return he->stat.period == 0;
} }
...@@ -259,8 +263,11 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel) ...@@ -259,8 +263,11 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel)
if (sort__need_collapse) if (sort__need_collapse)
rb_erase(&n->rb_node_in, &hists->entries_collapsed); rb_erase(&n->rb_node_in, &hists->entries_collapsed);
hist_entry__free(n);
--hists->nr_entries; --hists->nr_entries;
if (!n->filtered)
--hists->nr_non_filtered_entries;
hist_entry__free(n);
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册