AMD PowerNow! for Solaris
By Mark Haywood on May 05, 2008
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 1000000000My CPU is now running at its lowest supported frequency, 1.0 GHz. This should save power and generate less heat. Cool!