Re: [RFC PATCHv3] perf tools: add event grouping capability to "perfstat"

From: Corey Ashford
Date: Fri Nov 26 2010 - 14:22:13 EST


On 11/24/2010 10:32 PM, Peter Zijlstra wrote:
On Wed, 2010-11-24 at 17:54 -0800, Corey Ashford wrote:
Add the ability to create multiple event groups, each with their own leader
using the existing "-e<event>[,<event> ...] [-e<event>[,<event>]]"
syntax. Each additional -e switch creates a new group, and each event
listed within a -e switch is within that group.

Changes since v1:
- Because of a flub, v2 did not contain the changes I had intended to make,
and instead, v2 had the same patch contents as v1.
- When perf stat is not supplied any events on the command line, put
each default event in its own group.

I like this, but could you also extend this to perf-record? its a bit
odd to diverge between the two.

Using Stephane's latest syntax changes you could actually do something
like:

perf record -e task-clock:freq=1000,cycles:period=0

Which would create a group with 1 sampling counter and a counting
counter (at which point we should probably start flipping
PERF_SAMPLE_READ).

Yes, that would be useful.


Matt was working on supporting that (although not through cmdline
syntax) and teaching perf-report to cope with such output.

I did briefly consider adding this capability to perf record, but I knew it would be a lot more complicated.

This perf stat capability is something we added to an internal version, and have been using it for more than 6 months. It's quite helpful for verifying that the kernel code for an arch is implemented correctly.

As an alternative approach, how about if instead of changing the existing syntax to perf stat, I instead add a -g/--group option which takes groups of events?

That way we won't really be diverging perf record and perf stat; we'll just have a feature that can at some point later in time be added to perf record when all of the details are worked out.

- Corey
--
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/