Messages in this thread | | | Date | Wed, 10 Feb 2016 23:16:16 +0900 | From | Namhyung Kim <> | Subject | Re: [PATCH 13/23] perf hists: Support filtering in hierarchy mode |
| |
On Wed, Feb 10, 2016 at 01:11:19PM +0100, Jiri Olsa wrote: > On Fri, Feb 05, 2016 at 10:01:45PM +0900, Namhyung Kim wrote: > > SNIP > > > + /* force to go to sibling in the hierarchy */ > > + saved_unfolded = h->unfolded; > > + h->unfolded = false; > > + > > + nd = rb_hierarchy_next(&h->rb_node); > > + h->unfolded = saved_unfolded; > > + } > > + } > > + > > + /* resort output (top-level entries only) */ > > + nd = rb_first(&hists->entries); > > + while (nd) { > > + struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node); > > + > > + nd = rb_next(nd); > > + rb_erase(&h->rb_node, &hists->entries); > > + > > + __hists__insert_output_entry(&tmp, h, 0, false); > > + } > > what's the purpose of this resort? the only affect I see > is to recalculate callchains
Filter can change parent entries' period so we need to resort after applying a filter and this is why I pass 'false' for the 'use_callchain' param.
For example, let's say there're two top-level entries: A and B. The A has 40% overhead and the B has 30%. But after applying filter the A can have 10% and the B can have 15%. So output should be changed to put the B before the A.
I'll add a comment for this.
Thanks, Namhyung
| |