Re: [PATCH 14/23] perf ui/stdio: Implement hierarchy output mode

From: Jiri Olsa
Date: Wed Feb 10 2016 - 07:30:44 EST


On Wed, Feb 10, 2016 at 01:23:45PM +0100, Jiri Olsa wrote:
> On Fri, Feb 05, 2016 at 10:01:46PM +0900, Namhyung Kim wrote:
>
> SNIP
>
> >
> > - for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
> > + for (nd = rb_first(&hists->entries); nd; nd = rb_hierarchy_next(nd)) {
> > struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
> > float percent;
> >
> > @@ -542,6 +614,9 @@ print_entries:
> > MAP__FUNCTION, fp);
> > fprintf(fp, "%.10s end\n", graph_dotted_line);
> > }
> > +
> > + if (symbol_conf.report_hierarchy)
> > + h->unfolded = true;
>
> what's this for?
>

ah it's stdio, we need to show everything.. ok ;-)

I was thinking of putting this 'force un/fold' logic into the
rb_hierarchy_next interface, because it's also not nice in
hists__filter_hierarchy function..

maybe having extra argument telling the walk preference
would be easier to read, like:

rb_hierarchy_next(&h->rb_node, FORCE_UNFOLD);
rb_hierarchy_next(&h->rb_node, FORCE_FOLD);
rb_hierarchy_next(&h->rb_node, DEFAULT);

with some better names of course

just an idea.. it might turn horrible as well ;-)

thanks,
jirka