AMD PowerNow! for Solaris
Monday May 05, 2008
One of my earlier blog entries announced Enhanced Intel SpeedStep support in Solaris. At the tail end of that blog entry, I mentioned that AMD PowerNow! support in Solaris was not far off. And so it was. PowerNow! support for AMD processor families 10h and greater is now available in Solaris 10 Update 5 and OpenSolaris.
If you are wondering what AMD processor family 10h is, then you should be thinking of newer AMD processors like Barcelona. If you have Solaris running on your system you can retrieve the CPU family value via the cpu_info kstat:
kstat -m cpu_info -i 0 -s implementation
module: cpu_info instance: 0
name: cpu_info0 class: misc
implementation x86 (chipid 0x0 AuthenticAMD 100F23
family 16 model 2 step 3 clock 2000 MHz)
Note that the family value is printed in decimal, so the family value of 16 above is equivalent to 10 in hex and so, PowerNow! support exists in Solaris for this CPU.
The easiest way to tell if your Solaris AMD system supports PowerNow! is to display the new supported_frequencies_Hz kstat statistic that has been added to the cpu_info module:
$ kstat -m cpu_info -i 0 -s supported_frequencies_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
supported_frequencies_Hz
1000000000:1200000000:1400000000:1700000000:2000000000
The existence of more than one frequency in the list above indicates that Solaris supports frequency scaling of the CPU. To enable CPU power management on Solaris x86, a "cpupm" entry must be added to the power.conf(4) file. Additionally, a "cpu-threshold" entry can be added to power.conf(4) to define an idleness value by which the CPU can be power managed.
I frequently enable CPU power management on my Barcelona-based system and set its CPU idle threshold by adding the following two entries to my power.conf(4) file:
cpupm enable cpu-threshold 15s
After leaving my system idle for 15 seconds or more, I can see PowerNow in action by displaying the newly introduced current_clock_Hz kstat statistic:
kstat -m cpu_info -i 0 -s current_clock_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
current_clock_Hz 1000000000
My CPU is now running at its lowest supported frequency, 1.0 GHz. This should save power and generate less heat. Cool!











"support for AMD processor families 10h and g...
Any plans to expand support to slightly older proc...
I'd also be interested in support for family ...
Another member of the family 15 here ;). Dual core...
Hello,
i got a AMD Turion CPU, within linux it g...
Also Turion here wit...
Also Turion X2... I like OpenSolaris but it's unus...