Re: [PATCH RFC V2 1/1] x86, perf: Add a freq pmu driver

Stephane Eranian
2015-07-23T16:00:48Z

On Thu, Jul 23, 2015 at 8:52 AM, Andy Lutomirski <luto@amacapital.net> wrote:
> On Thu, Jul 23, 2015 at 8:44 AM, Stephane Eranian <eranian@google.com> wrote:
>> I understand the value of the tsc and smi events. It is not
>> clear to me what aperf/mperf buys you over cycles and ref-cycles:
>>
>> $ perf stat -a -e msr/aperf/,msr/mperf/,cycles,ref-cycles -C 1 -I 1000 sleep 10
>> # time counts unit events
>> 2.000361718 14,826,353 msr/aperf/
>> 2.000361718 11,865,170 msr/mperf/
>> 2.000361718 17,170,101 cycles
>> 2.000361718 13,629,675 ref-cycles
>>
>> Only the ratio aperf/mperf is defined, here 1.25 and the ratio
>> cycles/ref-cycles is 1.25 as well. So what is a situation where
>> aperf/mperf provides better info than cycles/ref-cycles?
>> The SDM also says aperf/mperf only defined when running in C0 mode.
>
> They're free-running and always on, which means that you can never
> fail to schedule them.
>
You get the same with cycles and ref-cycles. They can both run on
fixed-counters.
So you can always schedule them. If you cannot, then it means you are already
measuring them.

The only case I can see where there is a benefit is if you have a
competing system-wide
and per-thread sessions and the former is already using all the
generic counters + fixed
and you come in with a per-thread event to measure cycles or
ref-cycles. That would be
rejected but aperf/mperf would not. But that would only work if you
are counting. There
would be no benefits for sampling mode.