Cool n Quiet in v5.0-beta6a


Recommended Posts

So I upgraded last night to v5.0-beta6a to solve an issue I was having with communicating with my UPS (Thanks again for the fix, Joe L), and I noticed that Cool n Quiet appears to work now with my AMD x4 600e!

 

In the short amount of time I've played with it though, it doesn't seem to automatically slow down the processor. Every time I check with:

 

cat /proc/cpuinfo

it shows it running at full speed. When I type

modprobe powernow-k8

however, it slows down to 800mhz and doesn't seem to ever speed up again (From my limited amount of testing).

 

So, the question: Do I need to put  "modprobe powernow-k8" in my go script, and will it only slow down when not in use, or does it not need the modprobe, and will automatically do it on its own (And I just haven't waited long eough to see it happen...)?

 

Thanks!

Link to comment

It depends on what CPU governor you have selected. I opt for the ondemand one. I suspect you have the cpufreq_powersave enabled by default. You will need to change that as you see fit.

 

You will likely need something similar in your GO script to the following, as taken from my full Slackware 13.37 version install of /etc/rc.d/rc.modules:

 

  ### CPU frequency scaling policies:
  #
  # Use the CPUFreq governor 'powersave' as default.  This sets the
  # frequency statically to the lowest frequency supported by the CPU.
  #/sbin/modprobe cpufreq_powersave
  #
  # Use the CPUFreq governor 'performance' as default. This sets the
  # frequency statically to the highest frequency supported by the CPU.
  #/sbin/modprobe cpufreq_performance
  #
  # Use the CPUFreq governor 'conservative' as default.  This allows you
  # to get a full dynamic frequency capable system by simply loading your
  # cpufreq low-level hardware driver.  Be aware that not all cpufreq
  # drivers support the 'conservative' governor -- the fallback governor
  # will be the 'performance' governor.
  #/sbin/modprobe cpufreq_conservative
  #
  # Use the CPUFreq governor 'ondemand' as default.  This allows you to
  # get a full dynamic frequency capable system by simply loading your
  # cpufreq low-level hardware driver.  Be aware that not all cpufreq
  # drivers support the 'ondemand' governor -- the fallback governor will
  # be the performance governor.  This seems to be the most-recommended
  # scaling policy, so rc.modules will try to load this by default.
  /sbin/modprobe cpufreq_ondemand 2>/dev/null

  ### CPU scaling governor:
  #
  # Set the default scaling_governor to be used (such as userspace or ondemand)
  # if there is a CPUFreq scaling policy module loaded that supports it:
  SCALING_GOVERNOR=ondemand
  #
  # Try to enable the scaling_governor selected above:
  if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ]; then
    if grep -wq "$SCALING_GOVERNOR" /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ; then
      if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
        for SYSCPUFILE in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor ; do
          echo "$SCALING_GOVERNOR" > $SYSCPUFILE
        done
      fi
    fi
  fi

fi # End enabling CPU scaling support

 

Link to comment

Yes, copying that snippet into your GO script should be fine.

 

Though if you're comfortable with telnet/shell, you could try running the following to see how your system is currently configured and what's available:

 

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

 

Hopefully you will see a list that includes ondemand. I would think it would have 'ondemand', and 'performance' listed as those are compiled into the kernel. It may also have 'powersave', 'userspace', and 'conservative' available since the unRAID 5.0b6a Linux kernel has those configured as modules. They may not show up in that list unless you modprobe those modules though [cpufreq_XXX].

 

To see what governor is being used right now on your first core, try out the following:

 

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

 

To see all the cores, try:

 

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

 

 

Link to comment
  • 2 weeks later...

Thanks for this.  I just upgraded to 5.0b6a to fix the mdcmd errors discovered earlier.  I was on 5.0b2 and that was working great until I put a Core 2 Quad Q9300 into my machine in prep for an overhaul on what all I use my server for (VMWare/VirtualBox comming soon... hopefully).  After the upgrade in processor I was running into the mdcmd errors when running Transmission, Crashplan, Airvideo, mover, and a few other things at the same time.  I NEVER had this problem when I was running the computer with a Dual Core e1200 and doing most/all of these things.  I have only now upgraded to 5.0b6a to help alleviate this issue, so don't know if it has in fact been fixed but I believe it has.

 

The other side benefits of this have been AFP, and the CPU Frequency stuff that has been added.  I had to modprobe acpi-cpufreq and everything was golden from there.  The default governor for me was ondemand, so I was good to go with just doing the modprobe.

Link to comment

Hmm, I think I misunderstood something ...

 

root@Tower:/# /sbin/modprobe cpufreq_ondemand
root@Tower:/# SCALING_GOVERNOR=ondemand
root@Tower:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
cat: /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors: No such file or directory

 

Anything I need to do in addition to the steps above?

Link to comment

Hmm, I think I misunderstood something ...

 

root@Tower:/# /sbin/modprobe cpufreq_ondemand
root@Tower:/# SCALING_GOVERNOR=ondemand
root@Tower:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
cat: /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors: No such file or directory

 

Anything I need to do in addition to the steps above?

 

Yes, you need to modprobe something like:

modprobe powernow-k8

or

modprobe acpi-cpufreq

^looks like you have Intel hardware so use this acpi-cpufreq one

then

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

Link to comment

Sorry, I should have mentioned it - you are correct I do have an INTEL CPU. This is what I got:

root@Tower:/# modprobe acpi-cpufreq
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.36.2-unRAID/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device

 

Only modprobe speedstep-lib is working, or at least I'm getting no error back. But then the same story:

root@Tower:/# modprobe speedstep-lib
root@Tower:/# /sbin/modprobe cpufreq_ondemand
root@Tower:/# SCALING_GOVERNOR=ondemand
root@Tower:/# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
cat: /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors: No such file or directory

 

Here some more information which might be useful:

root@Tower:/# cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 22
model name	: Intel(R) Celeron(R) CPU          430  @ 1.80GHz
stepping	: 1
cpu MHz		: 1799.834
cache size	: 512 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx lm constant_tsc up arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm lahf_lm dts
bogomips	: 3599.66
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

 

 

Link to comment
  • 2 weeks later...

Is Cool ' n' Quiet only working in unRaid 5 or is it also available for unRaid 4.7?

Only in version 5

It works in 4.6 rc 3. The Linux kernel in that version supports Cool'n'Quiet / PowerNow, but Limetech reverted the kernel because there were stability issues with some hardware. I've been using 4.6.3 since it was released without problem (which is more than I can say for Beta 5  ;) ).

Link to comment

Is Cool ' n' Quiet only working in unRaid 5 or is it also available for unRaid 4.7?

Only in version 5

It works in 4.6 rc 3. The Linux kernel in that version supports Cool'n'Quiet / PowerNow, but Limetech reverted the kernel because there were stability issues with some hardware. I've been using 4.6.3 since it was released without problem (which is more than I can say for Beta 5  ;) ).

 

Short of the upgrade issue some are seeing with there discs 5.0b6a has been perfectly fine for me.  I had to update to is from 5.0b2 to get rid of the mdcmd error related stuff.

Link to comment

Could somebody please explain a little noob like me how this works?

 

What i have done now on my AMD System was (just tried to do it first manually):

modprobe powernow-k8

and

modprobe cpufreq_ondemand

Governors available are ondemand and performance.

 

The Processor goes down to 800Mhz, what means for me that the Speed for the internal copy from one HDD to the Array decreases from approx 50MB/s to 16MB/s, so the CPU doesn't seam to go back to fullspeed.

 

Do i have to have the stuff that comes to the go script, so this function works like it should?

Link to comment

I have not tested extensively.  My Q9300 Intel CPU clocks down to 2GHz when I modprobe what I need to.  It could/would probably go lower but I am running CrashPlan, Transmission, among other things on my server.  It might just be that 2GHz is where it needs to be.  If I started a handbrake job on the server and it did not resume to 2.5GHz then I would expect it to increase again to 2.5GHz.

 

I have no AMD systems to test with, so my suggestion is to do some searching around the interweb to see what other people are experiencing on there systems.

Link to comment

My idle and dynamic power management works perfectly, but then again I'm running unRAID 5.0b6a on a Slackware 13.37 distro with an Intel i3 530.

 

The 4 cores idle around 1200 Mhz. With all the services I have running, the system has 2 cores at 1200 Mhz and 2 cores at 1333 Mhz or 1466 Mhz. When doing a few more tasks it's anywhere from 2 cores at 1333 Mhz and the other 2 cores around 1533 Mhz to all 4 cores around 1600 Mhz. Now when it's doing all out kernel compiles then all 4 cores are maxed at 2933 Mhz.

Link to comment

And i am on AMD, thats the problem.

I will try to search the net for a solution, can anybody give me an advice how i can put some load onto my CPU under unRaid (without having to install something like x264 etc.) so i can see if it clocks up when needed? Or is parity calculation while putting something onto the array already enough?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.