You are not logged in.

#1 2012-05-14 23:59:00

Convergence
Member
Registered: 2005-07-02
Posts: 377

[solved]CPUfreq Ondemand doesn't scale as expected.

As per the wiki, I loaded appropriate module (powernow-k8), didn't change any settings, (so it should be on_demand set to scale up when a cpu reaches 95%).  However, when I run "watch grep \"cpu MHz\" /proc/cpuinfo"  It shows that each core is constantly jumping back and forth between 800 (min) and 3,200 mhz (max).  this would be fine if there were much of a load, but none of my cores are stressed beyond 2%.  In fact, I rebooted without X, and ran the command and had pretty much the same results.

Shouldn't all four cores be "chilling" at 800 mhz until I actually run something that challenges the CPU? 

Just to be sure, I ran the included script (/etc/rc.d/cpufreq) with these settings:

#configuration for cpufreq control

# valid governors:
#  ondemand, performance, powersave,
#  conservative, userspace
governor="ondemand"

# limit frequency range (optional)
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
#min_freq="2.25GHz"
#max_freq="3GHz"

# use freq to set up the exact cpu frequency using it with userspace governor
#freq=

This didn't seem to change anything.  Note that I left the min/max_freq settings commented, as the wiki says that scaling will work fine without it.


To be clear, when I monitor the frequency of each CPU, it shows that each one of them spends about half of it's time at full speed in spite of the fact that the system is under very low load.

Thanks.

Last edited by Convergence (2012-05-15 21:06:14)


It's a very deadly weapon to know what you're doing
---  William Murderface

Offline

#2 2012-05-15 15:19:17

ajaxas
Member
Registered: 2009-02-23
Posts: 65
Website

Re: [solved]CPUfreq Ondemand doesn't scale as expected.

@Convergence

You could try conservative governor then. It works like ondemand, but changes frequencies more gradually.

Also, you may want to use cpufreq-info utility that shows cpufreq information. To add cpufreq statistics to it's output you must utilize cpufreq-stats, which is compiled as a module in the archlinux kernel:

# modprobe cpufreq-stats

or just add it to the MODULES array of /etc/rc.conf

Looks like this:

analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 800 MHz - 2.20 GHz
  available frequency steps: 2.20 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: powersave, ondemand, performance
  current policy: frequency should be within 800 MHz and 2.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
  cpufreq stats: 2.20 GHz:6.26%, 2.00 GHz:0.14%, 1.90 GHz:0.09%, 1.80 GHz:0.17%, 1.70 GHz:0.23%, 1.60 GHz:0.31%, 1.50 GHz:0.20%, 1.40 GHz:0.21%, 1.30 GHz:0.41%, 1.20 GHz:0.31%, 1.10 GHz:0.29%, 1000 MHz:0.26%, 900 MHz:0.18%, 800 MHz:90.93%  (2765)

Last edited by ajaxas (2012-05-15 15:26:36)

Offline

#3 2012-05-15 15:36:04

Gusar
Member
Registered: 2009-08-25
Posts: 3,607

Re: [solved]CPUfreq Ondemand doesn't scale as expected.

Read about the race to idle. What you're seeing is perfectly fine. Going with the conservative governor is not good advice, that one was made for old AMd processors that couldn't do fast switching. But modern processors can do fast switching, so make use of that.

Offline

#4 2012-05-15 21:03:16

Convergence
Member
Registered: 2005-07-02
Posts: 377

Re: [solved]CPUfreq Ondemand doesn't scale as expected.

@ajaxas:  After reading Gusar's post, I think I'll stick with ondemand.  However you've given me a a new tool to play with.  Thanks.

@Gusar:  That's really cool.  Thanks for pointing that out.


It's a very deadly weapon to know what you're doing
---  William Murderface

Offline

Board footer

Powered by FluxBB