Mark Haywood

Introducing Enhanced Intel SpeedStep to Solaris

Friday Sep 21, 2007

At long last, we've integrated CPU frequency scaling into Solaris. And we're making it available for the first time in SXDE 9/07. Though we've supported CPU power management on SPARC for several years, this is the first time that CPU power management is being made available on Solaris x86.

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.

[6] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg
Comments:

good news, even if i don't have the right proc. Do you have a plan for suspend/resume on laptop?

Posted by gerard on September 22, 2007 at 05:22 AM PDT #

Fantastic, works for my laptop: Toshiba satellate pro u300:

bash-3.2# kstat -m cpu_info -s supported_frequencies_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
supported_frequencies_Hz 800000000:1200000000:1600000000:2000000000:2001000000

Posted by Rafal on January 18, 2008 at 04:06 PM PST #

How does this work in regard to frkit? Does this implement the PowerNow daemon for controlling CPU speed based on workload?

Posted by list.serv.address on January 23, 2008 at 08:00 PM PST #

Hi Mark...I come from the land of Dothanian. We are seeking universal help from your world of SpeedStep. The beings of Dothan want to thank you for your effort and are very much excited having to opportunity to visit your planet. Thank you and please save us. -Kyle

Posted by Kylw on May 20, 2008 at 10:29 AM PDT #

Hi, Mark!
I'm using OpenSolaris 2008.05 (Indiana) in a computer with Pentium IV HT 3Ghz. In Linux and Windows, I can get processor running silent at 2.4Ghz. In OpenSolaris, the result for kstat command is:

kstat -m cpu_info -s supported_frequencies_Hz
module: cpu_info instance: 0
name: cpu_info0 class: misc
supported_frequencies_Hz 3000135577

module: cpu_info instance: 1
name: cpu_info1 class: misc
supported_frequencies_Hz 3000135577

According your explain, Pentium IV processor should work... can you help me?

Posted by Edson Richter on June 05, 2008 at 09:24 AM PDT #

Third ... Rosenberg says that we are opening our "competing proprietary products long after a successful open source project has eclipsed their proprietary alternatives." He then juxtaposes SPARC vs x86 as an example of this. Fascinating. I didn't know that OpenSPARC was in response to the previously open source x86 project. I must have missed that one.
http://www.watchrolexshop.com
http://www.gamegoldme.com
http://www.cheap-lotrogold.com
http://www.globalsale.me/Aion-gold-083.aspx
http://www.cheap-gamegold.org
http://www.gamegoldvip.org

Posted by replica rolex on June 25, 2009 at 01:32 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed