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

From: Jiri Olsa
Date: Sun Jan 17 2016 - 11:16:15 EST


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!

could we have the hist_entry storage little more generic?
and maybe dynamically allocated?

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 ;-)

I'm preparing RFC patchset in my perf/c2c branch, if you want
to take a look

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

thanks,
jirka