View Full Version : powernow-k8 questions

18th January 2010, 04:28 AM
I just installed a new motherboard/CPU set into my HTPC. It runs F12 with a custom-built vanilla 2.6.32 kernel. Motherboard is Asus M4A785TD-M EVO; the CPU is a Phenom II X4 965 black edition. Stock speed is 3.4GHz (200x17) but it has an unlocked multiplier being a black edition chip. I once set the multiplier in BIOS to 17.5 and it reflected in cpufreq as 3.5GHz. Which leads to one of my questions.

The last posts here that touches on powernow-k8 at all is like a year ago and I still have no useful answer.

This is the cpufreq-info output for core 4. That of the other cores are similar.

analyzing CPU 3:
driver: powernow-k8
CPUs which run at the same hardware frequency: 3
CPUs which need to have their frequency coordinated by software: 3
maximum transition latency: 8.0 us.
hardware limits: 800 MHz - 3.40 GHz
available frequency steps: 3.40 GHz, 2.70 GHz, 2.20 GHz, 800 MHz
available cpufreq governors: ondemand, userspace
current policy: frequency should be within 800 MHz and 3.40 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).

modprobe's output:

powernow-k8: Found 1 AMD Phenom(tm) II X4 965 Processor processors (4 cpu cores) (version 2.20.00)
powernow-k8: 0 : pstate 0 (3400 MHz)
powernow-k8: 1 : pstate 1 (2700 MHz)
powernow-k8: 2 : pstate 2 (2200 MHz)
powernow-k8: 3 : pstate 3 (800 MHz)

All 4 cores can be independently scaled and the top end of hardware limit would reflect what I set in the bios.

Problem 1: Even though I raised the hardware limit as above, the scaling policy would remain 800-3400MHz, yet the top frequency step would change. The result is cpufreq would not use the newly raised top clock speed, capping the core at the next step - 2.7GHz. How can I change this policy?

Problem 2. I have been through a number of AMD K8/K10 CPUs and there have always been only 4 steps available: 800MHz, the CPU's maximum rated speed, and two intermediate steps of a certain calculated percentage. On previous kernel versions and/or previous generations of the K8 family I would see the FID/VID listed too. Not this time - I just have 4 P-states. Where does this information come from? How do I override these P-states, RMClock style, to make sure the core voltage gets scaled down as well?

Problem 3. acpi_cpufreq still refuses to load and I still have to use powernow-k8. What exactly is that driver supporting, if powernow-k8 still reads something from ACPI?

29th March 2010, 01:19 PM
Hi. I don't use Fedora but maybe I can help. There is a tool called k10ctl (Google for it, I wrote a wrapper script (http://www.ruwebit.net/article/410) for it). You can use the to change the speed and voltage for each P-state and core independently.

There are some things I noticed:
- The speeds in cpufreq are not updated correctly: what cpufreq-info displays is wrong
- Bogomips is not recalculated (cat /proc/cpuinfo)
- Speeds in cpufreq _are_ update when a core is disabled and enabled again