Re: I.2 - Grouping

From: stephane eranian
Date: Tue Jun 23 2009 - 03:36:39 EST

On Tue, Jun 23, 2009 at 7:16 AM, Paul Mackerras<paulus@xxxxxxxxx> wrote:
> Ingo Molnar writes:
>> > 2/ Grouping
>> >
>> > By design, an event can only be part of one group at a time.
> To clarify this statement of Stephane's, a _counter_ can only be in
> one group. ÂYou can have multiple counters counting the same _event_
> and those counters can (obviously) be in different groups.

What happens if I do:
fd0 = perf_counter_open(&hwc1, getpid(), -1, -1, 0);
fd1 = perf_counter_open(&hwc2, getpid(), -1, fd0, 0);

And then:
fd2 = perf_counter_open(&hwc2, getpid(), -1, fd1, 0);

>> > Events in a group are guaranteed to be active on the PMU at the
>> > same time. That means a group cannot have more events than there
>> > are available counters on the PMU. Tools may want to know the
>> > number of counters available in order to group their events
>> > accordingly, such that reliable ratios could be computed. It seems
>> > the only way to know this is by trial and error. This is not
>> > practical.
>> Groups are there to support heavily constrained PMUs, and for them
>> this is the only way, as there is no simple linear expression for
>> how many counters one can load on the PMU.
> That's not the only reason for having groups, or even the main reason
> IMO. ÂThe main reason for having groups is to provide a way to ask the
> scheduler to ensure that two or more counters are always scheduled
> together, so that you can meaningfully do arithmetic operations on the
> counter values that would be sensitive to the statistical noise
> introduced by the scheduling, such as ratios and differences.
> In other words, grouping is there because we don't guarantee to have
> all counters scheduled onto the PMU whenever possible. ÂHeavily
> constrained PMUs increase the need for scheduling, but even if
> counters are completely orthogonal there are only a fixed number of
> them so we still need to schedule counters at some point.
I agree completely.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at