Messages in this thread | | | Date | Thu, 23 Jul 2015 10:25:43 -0700 | From | Andi Kleen <> | Subject | Re: [PATCH RFC V2 1/1] x86, perf: Add a freq pmu driver |
| |
> 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
| |