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

Andi Kleen
2015-07-23T17:25:46Z

> 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.

aperf/mperf excludes idle and it accounts for throttling and p-state
coordination. So it's a indicator how busy the CPU is while running.
That's why it is used as input to the p-state algorithm.

cycles/ref-cycles is just the core busy indicator related
to idle. That's a different metric.

Also we have PPERF now on some parts (productive performance count),
but it also needs a ratio, so MPERF is needed to get the ratio.

BTW with the table driven scheme adding new MSRs is very cheap
(just a table entry usually) so there is little reason for not adding any.

-Andi