Re: [RFC 5/5] perf: Enable multiple hist_entry_group output

From: Jiri Olsa
Date: Mon Apr 14 2014 - 05:20:01 EST


On Fri, Apr 11, 2014 at 02:34:52PM -0400, Don Zickus wrote:
> On Fri, Apr 11, 2014 at 07:30:00PM +0200, Jiri Olsa wrote:

SNIP

> > and with your changes we could do:
> >
> > Overhead CPU symbol
> > ........ ... ......
> > 90% 0
> > 50% krava1
> > 20% krava2
> > 30% krava3
> >
> > 10% 1
> > 50% krava4
> > 50% krava5
> >
> >
> > I wonder we could go more generic and allow more nested groups,
> > like eg allow group sort on cpu and pid (or more):
> >
> > Overhead CPU pid symbol
> > ........ ... ... ......
> > 90% 0
> > 50% 100
> > 50% krava1
> > 20% krava2
> > 30% krava3
> > 50% 110
> > 50% krava1
> > 20% krava2
> > 30% krava3
> >
> > 10% 1
> > 100% 200
> > 50% krava4
> > 50% krava5
> >
> >
> > I glanced over the changes and I wonder we could do it
> > by chaining hists structs via 'struct hist_entry'
> >
> > like adding 'struct hists' into 'struct hists_entry'
> > and making the sort_order local for each 'struct hists'
>
> Unless you meant:
>
> hists
> \- hist_entry
> \- hists
> \- hist_entry -> hist_entry -> hist_entry -> hist_entry
> \- hists
> \- hist_entry -> hist_entry -> hist_entry
>
> where each 'hists' represents a new group and a hist_entry->hists != NULL
> is a group otherwise just a node?

right, hist_entry is either node or leaf, I see it like this:

hists (A)
\-hist_entry(A)->(hists B1)
\-hist_entry(B1)
\-hist_entry(B1)
\-hist_entry(B1)

\-hist_entry(A)->(hists B2)
\-hist_entry(B2)

\-hist_entry(A)->(hists B3)
\-hist_entry(B3)
\-hist_entry(B3)


hists (A) - getting data groupped by CPU - hist_entry (A)
hists (BX) - getting data belonging to CPU group and groupped by symbol (hist_entry BX)

so hists(A) provides data for 1st column in Overhead,
and hists(BX) provides data for the 2nd one:

Overhead CPU symbol
........ ... ......
90% 0
50% krava1
20% krava2
30% krava3

5% 1
100% krava4

5% 2
50% krava4
50% krava5


jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/