Introducing Enhanced Intel SpeedStep to Solaris
By Mark Haywood on Sep 21, 2007
As the title of this inaugural post suggests, our first Solaris x86 CPU power management offering is for those systems running Solaris on Intel platforms. More specifically, Enhanced Intel SpeedStep on Solaris is only supported on systems running Intel processors that belong to Family 0xF - Models >=0x3 or Family 0x6 - Models >= E. You're probably asking yourself, "What does that mean to me?"
The family/model combinations listed above roughly translate to:
- Pentium 4 and Intel Xeon processors
- Intel Core Solo and Intel Core Duo processors
- Intel Xeon Processor 5100 Series and Intel Core 2 Duo processors
But the easiest way to tell if your Solaris x86 system supports CPU power management is to display the new supported_frequencies_Hz kstat statistic that has been added to the cpu_info module:
$ kstat -m cpu_info -s supported_frequencies_Hz module: cpu_info instance: 0 name: cpu_info0 class: misc supported_frequencies_Hz 2800000000:3200000000
module: cpu_info instance: 1 name: cpu_info1 class: misc supported_frequencies_Hz 2800000000:3200000000
As you can see, there is more than one supported frequency listed for each of the CPU instances above. That means that Solaris supports frequency scaling of those CPUs.
With the knowledge that Solaris supports CPU power management on your system, you may be asking yourself, "How do I turn it on?" We've recently added a couple of new keywords to the power.conf(4) file. The new keywords "cpupm" and "cpu-threshold" can be used to control CPU power management behavior on your Solaris system.
I frequently enable CPU power management on my Pentium 4 system and set its CPU idle threshold by adding the following two entries to my power.conf(4) file:
cpupm enable cpu-threshold 15s
When I leave my system idle for 15 seconds or more, I can see the result of my "idleness" by displaying the newly introduced current_clock_Hz kstat statistic:
$ kstat -m cpu_info -s current_clock_Hz module: cpu_info instance: 0 name: cpu_info0 class: misc current_clock_Hz 2800000000 module: cpu_info instance: 1 name: cpu_info1 class: misc current_clock_Hz 2800000000
My CPUs have been scaled to run at their lowest supported frequency, 2.8 GHz, and are consuming less power and are generating less heat as a result. Not bad, huh?
Well, if you're not running one of the Intel processors listed above, or if you're running an AMD processor, don't fret. We're busy working on extending our Solaris x86 CPU power management support, so there's a good chance that Solaris will be supporting your processor in one of the upcoming SXDE releases. You're sure to see more posts from me as things progress.