Comment # 10 on bug 1190871 from
Hello,

before getting into the detail of this report I need to clarify the difference
between two kinds of frequency measurements: average frequency over active
time (also called "BusyMHz") and average frequency over entire time (or
"AvgMHz").

* BusyMHz: a CPU can be active, i.e. executing instructions (this is called
  "CO State") or switched off, inactive. There are several inctive states,
  called C1, C2, C3 etc. depending on how big of a portion of a CPU is taken
  offline. A CPU enters an inactive state to save energy; when in such state,
  it isn't executing anything and we can say the clock frequency is zero.
  BusyMHz is the average clock frequency (during the sampled interval) if we
  only consider C0 time, and dismiss all the time that's spent in all other
  C-States. You can be idling a lot (lots of non-C0 time) and still have a
  high BusyMHz, simply because of some brief activity spike (eg. processing
  interrupts). When the machine is not under load what's important is that
  AvgMHz is low, see next item.

* AvgMHz: if we include all the non-C0 time (during which the CPU was powered
  off to some extent) in our average frequency calculation, we get AvgMHz.
  When not under load, this is expected to be near zero.

Your measurement before and after the change were done using lscpu; there are
two problems with that:

1. lscpu measures BusyMHz; the sampling time is very brief (less than 10 ms).
   This is not a good indication of "cpu is spinning fast even if I not doing
   anything". Again, BusyMHz can be high even if the machine is not under
   load.

2. lscpu only shows BusyMHz for the first cpu, CPU#0. It seems like this is an
   Intel CPU and I expect it to have multiple cores; the reason for the change
   in lscpu output could simply be something that used to be processed
   elsewhere is now processed on CPU#0. Without data on the full set of CPUs,
   we can't tell.

Regarding how to measure the CPU frequency, the designated tool is
turbostat(8), which in openSUSE is packaged in the cpupower package.

Please run (as root) the following:

    turbostat --interval 1

This will sample all the data that's needed at intervals of 1 second,
especially AvgMHz and BusyMHz from above, and Busy% which will tell the
percentage of C0 time with respect to the total.

What we want for an idle system is low values of AvgMHz and Busy%.
Please let turbostat run for a minute or so, save the entire output and post
as an attachment (including the header information, which shows a number of
power-management related indicators).

Also please show the entire `lscpu` output for information on the CPU model.

Thanks,


You are receiving this mail because: