Re: [PATCH 04/11] perf hists: Add a couple of hists stat helper functions

From: Jiri Olsa
Date: Thu Apr 24 2014 - 09:12:46 EST


On Thu, Apr 24, 2014 at 09:57:46PM +0900, Namhyung Kim wrote:
> Hi Jiri,
>
> 2014-04-24 (ë), 11:40 +0200, Jiri Olsa:
> > On Thu, Apr 24, 2014 at 05:23:56PM +0900, Namhyung Kim wrote:
> >
> > SNIP
> >
> > > - hists->stats.total_period = 0;
> > > - hists->stats.total_non_filtered_period = 0;
> > > + hists__reset_stats(hists);
> > > hists__reset_col_len(hists);
> > >
> > > while (next) {
> > > @@ -699,13 +716,13 @@ static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h
> > > if (h->filtered)
> > > return;
> > >
> > > - ++hists->nr_non_filtered_entries;
> > > if (h->ms.unfolded)
> > > hists->nr_non_filtered_entries += h->nr_rows;
> > > h->row_offset = 0;
> > > - hists->stats.total_non_filtered_period += h->stat.period;
> > > +
> > > hists->stats.nr_non_filtered_samples += h->stat.nr_events;
> > >
> > > + hists__inc_filter_stats(hists, h);
> > > hists__calc_col_len(hists, h);
> > > }
> > >
> > > @@ -726,9 +743,9 @@ void hists__filter_by_dso(struct hists *hists)
> > > {
> > > struct rb_node *nd;
> > >
> > > - hists->nr_non_filtered_entries = 0;
> > > - hists->stats.total_non_filtered_period = 0;
> > > hists->stats.nr_non_filtered_samples = 0;
> > > +
> > > + hists__reset_filter_stats(hists);
> >
> > maybe I'm missing some case, but why is not 'nr_non_filtered_samples'
> > reset/increased in hists__reset_filter_stats/hists__inc_filter_stats functions?
>
> Because basically number of sample is counted at input stage, and these
> functions are called at output stage. But if a new filter is applied,
> we need to re-count the numbers for the filter so it needs to be counted
> separately.

ok.. I'll queue this for perf/core

thanks,
jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/