Commit-ID:  3186b6815d49b5e0defbd884223da3778edb59fc
Gitweb:     http://git.kernel.org/tip/3186b6815d49b5e0defbd884223da3778edb59fc
Author:     Namhyung Kim <[email protected]>
AuthorDate: Tue, 22 Apr 2014 13:44:23 +0900
Committer:  Jiri Olsa <[email protected]>
CommitDate: Thu, 24 Apr 2014 16:32:44 +0200

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: Namhyung Kim <[email protected]>
Link: 
http://lkml.kernel.org/r/[email protected]
Signed-off-by: Jiri Olsa <[email protected]>
---
 tools/perf/util/hist.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 6d0d2d7..7f0236c 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -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);
                }
        }
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to