> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/