dnebdal at gmail.com
Thu Nov 18 13:38:16 UTC 2010
On Thu, Nov 18, 2010 at 2:32 PM, Andriy Gapon <avg at freebsd.org> wrote:
> on 18/11/2010 05:53 George Neville-Neil said the following:
>> On Nov 16, 2010, at 09:37 , Andriy Gapon wrote:
>>> Many modern processors provide APERF and MPERF MSRs which allow to easily and
>>> reliable calculate average CPU performance level over some interval of time.
>>> This also allows to notice things like performance boost, which is generally
>>> hidden from software.
>>> What would be a proper place to add code that would measure APERF/MPERF ratio?
>>> When should trigger such a measurement and over what interval?
>> Can you point me at documentation for this? This sounds a lot like
>> hwpmc(4) and I wonder if we can make these available in the same way.
> Actually it feels more cpufreq-ish to me.
> This feature is documented in, e.g., Intel Software Developer's Manual volume 3A,
> section 14.2 P-STATE HARDWARE COORDINATION.
Just for the sake of gathering information here:
What they offer are two (64-bit, wrapping) counters; one that
increases at a constant rate, and one that increases in proportion to
the current performance of the CPU, so that APERF/MPERF = fraction of
max possible performance the CPU has offered since the last time the
counters were zeroed. Intel specifically suggests multiplying that
with the observed CPU load over the same time period to get an
absolute CPU load number, and using that to pick a suitable P-state.
On a tangent, I wonder if you can get APERF>MPERF if you're using an
i5/i7 and their dynamic/automatic overclocking kicks in?
As for what to do with it, it sounds like it would make sense as an
alternate data source for powerd?
More information about the freebsd-current