Re: [PATCH 3/3] perf, tool: Add new event group management

From: Jiri Olsa
Date: Tue Apr 10 2012 - 09:20:31 EST


On Tue, Mar 20, 2012 at 07:44:41PM +0100, Peter Zijlstra wrote:
> On Tue, 2012-03-20 at 19:15 +0100, Jiri Olsa wrote:
> > Examples (first event in brackets is group leader):
> >
> > # 1 group (cpu-clock,task-clock)
> > perf record --group -e cpu-clock,task-clock ls
> > perf record --group parsed -e cpu-clock,task-clock ls
> >
> > # 2 groups (cpu-clock,task-clock) (minor-faults,major-faults)
> > perf record --group parsed -e cpu-clock,task-clock \
> > -e minor-faults,major-faults ls
> >
> > # 1 group (cpu-clock,task-clock,minor-faults,major-faults)
> > perf record --group -e cpu-clock,task-clock \
> > -e minor-faults,major-faults ls
> >
> > # 2 groups (cpu-clock,task-clock) (minor-faults,major-faults)
> > perf record --group parsed -e cpu-clock,task-clock \
> > -e minor-faults,major-faults -e instructions ls
> >
> > # 1 group (cpu-clock,task-clock,minor-faults,major-faults,instructions)
> > perf record --group -e cpu-clock,task-clock \
> > -e minor-faults,major-faults -e instructions ls
>
> I can't help but dislike the --group/--group parsed thing...
>
> How about something like:
>
> event_group = "{", events, "}" , [ ":", event_group_mod ]
>
> Such that you can write things like:
>
> perf record -e "{cpu-clock,cache-misses,cache-references}"
>
> perf stat -e "{cpu-clock,cycles},{cpu-clock,cache-misses,cache-references}"
> perf stat -e "{cpu-clock,cycles}" -e "{cpu-clock,cache-misses,cache-references}"
>
> I'm not sure what the current behaviour of --group is, if you create a
> group like this, do they all sample?
>
> If so, we need some option like:
>
> perf record -e "{cpu-clock,cache-misses,cache-references}:1"
>
> to mean, only sample on cpu-clock but use PERF_SAMPLE_READ and
> PERF_FORMAT_GROUP to read all siblings on every cpu-clock sample.
hi,

I'm looking on how to present this data in perf and it seems we need
to reset all siblings once we read/store them (in kernel) to the leader
sample.

My current thinking is to store siblings' sum values for each
hists entry of the sample (perf report count unit) .. and display
them in similar way we display callchains: for each hists entry
display the sum value for each sibling.

Could you provide more of your world examples? Your expectations about
presenting this..

Maybe we want to make the reset optional, and do some do some other
math with siblings' values..?

Thoughts? ;)

thanks,
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/