|
@@ -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)
|
|
|
{
|
|
|
u64 prev_period = he->stat.period;
|
|
|
+ u64 diff;
|
|
|
|
|
|
if (prev_period == 0)
|
|
|
return true;
|
|
|
|
|
|
he_stat__decay(&he->stat);
|
|
|
|
|
|
+ diff = prev_period - he->stat.period;
|
|
|
+
|
|
|
+ hists->stats.total_period -= diff;
|
|
|
if (!he->filtered)
|
|
|
- hists->stats.total_period -= prev_period - he->stat.period;
|
|
|
+ hists->stats.total_non_filtered_period -= diff;
|
|
|
|
|
|
return he->stat.period == 0;
|
|
|
}
|
|
@@ -259,8 +263,11 @@ void hists__decay_entries(struct hists *hists, bool zap_user, bool zap_kernel)
|
|
|
if (sort__need_collapse)
|
|
|
rb_erase(&n->rb_node_in, &hists->entries_collapsed);
|
|
|
|
|
|
- hist_entry__free(n);
|
|
|
--hists->nr_entries;
|
|
|
+ if (!n->filtered)
|
|
|
+ --hists->nr_non_filtered_entries;
|
|
|
+
|
|
|
+ hist_entry__free(n);
|
|
|
}
|
|
|
}
|
|
|
}
|