Messages in this thread | | | Date | Tue, 19 Jan 2016 19:51:18 +0900 | From | Namhyung Kim <> | Subject | Re: [PATCH 01/17] perf hists: Basic support of hierarchical report view |
| |
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.
> > 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
| |