Re: [PATCH 01/17] perf hists: Basic support of hierarchical report view

From: Arnaldo Carvalho de Melo
Date: Tue Jan 19 2016 - 11:51:01 EST


Em Tue, Jan 19, 2016 at 07:51:18PM +0900, Namhyung Kim escreveu:
> Hi Jiri,
>
> On Sun, Jan 17, 2016 at 05:15:33PM +0100, Jiri Olsa wrote:
> > On Sun, Jan 17, 2016 at 01:03:01AM +0900, Namhyung Kim wrote:
> >
> > SNIP
> >
> > > char *srcfile;
> > > struct symbol *parent;
> > > - struct rb_root sorted_chain;
> > > struct branch_info *branch_info;
> > > struct hists *hists;
> > > struct mem_info *mem_info;
> > > void *raw_data;
> > > u32 raw_size;
> > > void *trace_output;
> > > + struct perf_hpp_fmt *fmt;
> > > + struct hist_entry *parent_he;
> > > + union {
> > > + /* this is for hierarchical entry structure */
> > > + struct {
> > > + struct rb_root hroot_in;
> > > + struct rb_root hroot_out;
> > > + }; /* non-leaf entries */
> > > + struct rb_root sorted_chain; /* leaf entry has callchains */
> > > + };
> >
> > looks like cool feature!
>
> Thanks!
>
> >
> > could we have the hist_entry storage little more generic?
> > and maybe dynamically allocated?
>
> I'm fine with it.

Ok, so how should we proceed? I propose I test this patchkit, which
indeed looks cool from this cover letter description, yay!

If I find no problems, I'll merge it and, then, on top of it, you guys
can work on having this per-feature priv storage sorted out?

Please advise, meanwhile I'll cherry-pick whatever seems easy from both
patchkits.

- Arnaldo

> >
> > I'm doing the same thing for the c2c stuff, like having
> > for each hist_entry its own 'struct hists' object, which
> > records data related to parent hist_entry
> >
> > maybe we could strip the 'hists' object to some bare minimum
> > which is needed for store/sort/stat and display entries
> > in hists_browser ;-)
>
> Yeah, as you can see, it basically needs a pointer to parent entry,
> hpp output format, and rbtrees for chlidren. Also I added depth and
> leaf field to make it easy for browser routines.
>
> >
> > I'm preparing RFC patchset in my perf/c2c branch, if you want
> > to take a look
>
> Sure.
>
> >
> > however, as I said above, for my own sake it all boils down
> > to have 'hists' object within hist_entry, so I can use it
> > in the UI code easily
> >
> > FYI I also added support for hists object's own sort/output
> > format lists.. which I'll curve out and send for review soon
>
> OK, will take a look.
>
> Thanks,
> Namhyung