Jump to content

Experimental Intel SpeedStep kext


mercurysquad
 Share

291 posts in this topic

Recommended Posts

Finally got it working! With only 2 P-States only though. Works wonderfully, except for a little sound shuttering. :hysterical: Thanks!

You can try making your own PState table in multiples of your FSB to get more than 2 states, and it might just work. No guarantees though. :D

Link to comment
Share on other sites

Hello,

Thank you very much for this kext, which works great on my computer.

So, sleep works (resume too), and speedstep seems to work.

The only problem is that sound is stuttering...

 

But I have a question, when I do

sudo dmesg | grep IntelEnhancedSpeedStep
, I have
IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 3

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x617

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 3

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x617

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 0

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xc21

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 0

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xc21

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 3

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x617

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 0

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xc21

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 0

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xc21

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 1

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0xa1f

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 3

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x617

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 2

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x81b

IntelEnhancedSpeedStep: DBG Throttle done.

IntelEnhancedSpeedStep: DBG Throttling to PState 3

IntelEnhancedSpeedStep: DBG Starting throttle with CTL 0x617

IntelEnhancedSpeedStep: DBG Throttle done.

I haven't got

IntelEnhancedSpeedStep: INFO Initializing version 1.2.1c © Prashant Vaibhav <mercurysquad@yahoo.com>

IntelEnhancedSpeedStep: DBG Probing for Intel processor...

IntelEnhancedSpeedStep: INFO Supported Intel processor found on your system

IntelEnhancedSpeedStep: DBG Processor Family 6, Model 15

IntelEnhancedSpeedStep: INFO Starting

IntelEnhancedSpeedStep: DBG FSB = 233 MHz (OK)

IntelEnhancedSpeedStep: INFO On your processor, voltages can be changed in 16 mV steps

IntelEnhancedSpeedStep: DBG Using data from CPU0

IntelEnhancedSpeedStep: DBG Found 3 P-States

IntelEnhancedSpeedStep: INFO P-State 0: 2330 MHz at 1564 mV, consuming 88 W, latency 160 usec

IntelEnhancedSpeedStep: INFO P-State 1: 1864 MHz at 1564 mV, consuming 71 W, latency 160 usec

IntelEnhancedSpeedStep: INFO P-State 2: 1398 MHz at 1564 mV, consuming 56 W, latency 160 usec

IntelEnhancedSpeedStep: DBG Using 3 PStates.

whereas some of you did have.

 

But, when I do

sysctl -a | grep throttle
I have:

when I select 1200 with the app speedstep :

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 1200

kern.cputhrottle_curvolt: 1000

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 1559

 

 

When I select 1600:

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 1600

kern.cputhrottle_curvolt: 1050

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 2075

 

 

 

When I select 2000

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 2000

kern.cputhrottle_curvolt: 1100

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 2591

 

 

 

and when I select 2400:

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 2400

kern.cputhrottle_curvolt: 1125

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 3105

 

 

What does kern.exec: unknown type returned means ?

Are you sure that the volt of my computer change?

I hope when I am at 1200 my volt isn't at 1125 but at 1000

 

 

Thank you very much for your help, and sorry for my bad english.

Link to comment
Share on other sites

Thanks for the fantastic work guys.

It's excellent to have sleep kernel with speedstep options, but I think I already can have it using coolbook

So what advantages will I take using this method instead of Coolbook?

 

Thanks

 

Coolbook didnt use Speedstep function of the CPU !

Coolbook sets the fuctions all by itself (CPU work, not buildin speedstep function)

So more CPU time usage than using speedstep.

Link to comment
Share on other sites

Thanks for the fantastic work guys.

It's excellent to have sleep kernel with speedstep options, but I think I already can have it using coolbook

So what advantages will I take using this method instead of Coolbook?

 

Thanks

 

Coolbook is not free.

Coolbook only does undervolting, no speedstep

Coolbook expects AppleIntelCPUPowerManagement.kext to exist and do the speedstepping work, which most hacks don't have

Coolbook doesn't work on a lot of real macs, let alone hackintosh. It doesn't support Pentium4 or M

Coolbook assumes 12.5 mV steps regardless of CPU type.

Coolbook doesn't send clock recalibration signals to the kernel for CPUs without constant tsc.

Coolbook is not developed by a hackintosh user :thumbsup_anim: with no sourcecode available

..That's enough for now. I think this kext works better than Coolbook in just about every way, and supports more computers too. The only thing which Coolbook allegedly has over the kext is support for N/2 bus ratio, which I'll add to v1.3 soon so people can go below 1Ghz. But then I've not seen anyone use Coolbook to go below 1Ghz either.

Link to comment
Share on other sites

Hello,

Thank you very much for this kext, which works great on my computer.

So, sleep works (resume too), and speedstep seems to work.

The only problem is that sound is stuttering...

 

But I have a question, when I do , I have

I haven't got whereas some of you did have.

 

But, when I do I have:

when I select 1200 with the app speedstep :

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 1200

kern.cputhrottle_curvolt: 1000

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 1559

 

 

When I select 1600:

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 1600

kern.cputhrottle_curvolt: 1050

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 2075

 

 

 

When I select 2000

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 2000

kern.cputhrottle_curvolt: 1100

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 2591

 

 

 

and when I select 2400:

 

kern.exec: unknown type returned

kern.cputhrottle_curfreq: 2400

kern.cputhrottle_curvolt: 1125

kern.cputhrottle_freqs: 1200 1600 2000 2400

kern.cputhrottle_factoryvolts: 1000 1050 1100 1137

kern.cputhrottle_ctl: 3105

 

 

What does kern.exec: unknown type returned means ?

Are you sure that the volt of my computer change?

I hope when I am at 1200 my volt isn't at 1125 but at 1000

 

 

Thank you very much for your help, and sorry for my bad english.

 

Hello,

I have an another problem: When I put my cpu at 1200 and I don't touch my computer during 3hours (for exemple), my fans are working (and making a lot of noise) and my computer is hot.

When I stay 3 hours on windows vista and I don't touch the computer, fans aren't working and computer is cold.

 

What's the problem?

Must I have to use an efi bootloader?

Thanks

Link to comment
Share on other sites

Yes.

 

For reducing temperature you can try to decrease the voltage by about 250 mV, at your own risk.

 

Ok, thanks, but don't forget I have a notebook so I can't change the voltage in the bios, and sysctl -w kern.cputhrottle_curvolt=950 is the minimum I can have

So, the temperature is hight because the speedstep doesn't work because I am not using an efi bootloader?

I'm going to install an efi bootloader.

 

Thanks

Link to comment
Share on other sites

I've tweak a little my pstates table, before with acpi got 2states (1000&1500), now 4 (1000&1169&1336&1500), all with the lowest voltage (950mv, or which is seen as 1004 on terminal)

 

Pretty stable, but audio & video stuttering when playback video...

 

I use 9.4 vanilla, will try with my old speedstep...

 

No change with speedstep kernel, stuttering....

 

Any way to save preference in speedstep app beta ?

Link to comment
Share on other sites

hi

 

here my results - check my sig for hardware details

 

http://pastebin.com/ma91d66c

 

keep up the good work!

 

regards,

 

mrheat

 

hooray !

 

with new version and manual plist edit it works now!

 

acpi is ununsable on this machine. same in linux.

 

one question: my merom chip runs stable 0.950 mv at all frequencies,

 

can i enter the same voltage for all frequencies?

 

great work!

Link to comment
Share on other sites

Could someone post an example plist with manual p-state entries? It's not reading the p-states here and I'm completely lost trying to figure out how to find/add them manually. Just need something to work off :censored2:

 

Here my: 1398,1864,2330 MHZ / 1164,1228,1308 mV

MY CPU E4400 has 3 Pstates (0-2), if you have 4 use one entry more in the Table.

 

......

KernelFeatures

-1

PStateTable

2330

1308

1864

1228

1398

1164

Link to comment
Share on other sites

WOW! I never thought I would get speedstep working on my laptop as even windows can't read it's acpi tables. Amazing. At one point it reported my voltage as 1404mV (max should be 1260mV) which caused kernel panic if i changed the frequency. That seems to be fixed by forcing it down to 1260mV.

 

One question: at 998mhz it runs at 956mV in windows, but i can only get it to go to 1004mV in osx. so for 998mhz and 1164mhz they both run at 1004mV. Not really a big issue but strange nonetheless.

 

I use my laptop as my desktop so anything to keep it cool is extremely helpful

 

THANK YOU!!!!

Link to comment
Share on other sites

one question: my merom chip runs stable 0.950 mv at all frequencies,

 

can i enter the same voltage for all frequencies?

 

Sure, if it's stable at 950 mV, you can use the same voltage for all frequencies. I would however, try to bump it down to 800 for lower frequencies to get even more power savings and lower temperature. But it's up to you.

 

Ok, thanks, but don't forget I have a notebook so I can't change the voltage in the bios, and sysctl -w kern.cputhrottle_curvolt=950 is the minimum I can have

So, the temperature is hight because the speedstep doesn't work because I am not using an efi bootloader?

I'm going to install an efi bootloader.

 

Thanks

 

From your log output it seems that SpeedStep is working properly. Your processor might be limiting the voltage you can switch to. You can change voltage using sysctl, no need to mess with BIOS. If temperature is still high, it could be due to other reasons (e.g. Spotlight indexing the harddrive when you are away).

 

WOW! I never thought I would get speedstep working on my laptop as even windows can't read it's acpi tables. Amazing. At one point it reported my voltage as 1404mV (max should be 1260mV) which caused kernel panic if i changed the frequency. That seems to be fixed by forcing it down to 1260mV.

 

One question: at 998mhz it runs at 956mV in windows, but i can only get it to go to 1004mV in osx. so for 998mhz and 1164mhz they both run at 1004mV. Not really a big issue but strange nonetheless.

 

I use my laptop as my desktop so anything to keep it cool is extremely helpful

 

THANK YOU!!!!

 

Could you please post which CPU you have (its family, model, stepping)? It seems the kext is detecting your CPU as having 16mV steps instead of 12.5mV steps, thus calculating a higher voltage than it should be.

 

Also, which kernel are you using?

 

To force change the voltages, you can setup your own P-state table as described on the first page and some posts above on this page too. Keep in mind the processor might limit the voltage range, so if you supply a voltage lower than the processor will accept, it will automatically choose the proper lowest voltage.

 

 

(950mv, or which is seen as 1004 on terminal)

 

No change with speedstep kernel, stuttering....

 

Any way to save preference in speedstep app beta ?

 

1) Seems your CPU's voltage steps are being detected incorrectly. Please post your CPU information +family,model,stepping.

 

2) Stuttering: this should not happen on modern processors with constant_tsc, but in case yours doesn't have constant tsc, you need to use a speedstep kernel. Either use existing ToH kernels (no sleep), or wait for my 9.4 kernel.

 

3) I can't say about the gui apps, their devs might have more info.

Link to comment
Share on other sites

Could you please post which CPU you have (its family, model, stepping)? It seems the kext is detecting your CPU as having 16mV steps instead of 12.5mV steps, thus calculating a higher voltage than it should be.

 

Also, which kernel are you using?

 

To force change the voltages, you can setup your own P-state table as described on the first page and some posts above on this page too. Keep in mind the processor might limit the voltage range, so if you supply a voltage lower than the processor will accept, it will automatically choose the proper lowest voltage.

 

Intel Core Duo T2500 (family 6, model 14, stepping 8)<---according to "sysctl machdep.cpu && uname -a".

 

I am using 9.4 vanilla kernel.

 

I have set up my own P-state table based on windows values. Without setting up the P-state table no states are detected. In windows the voltage does go as low as 950mV so i dont think the processor is limiting it.

 

sudo dmesg | grep IntelEnhancedSpeedStep

 

sysctl machdep.cpu && uname -a

 

sysctl -a | grep throttle

 

Thanks again

Link to comment
Share on other sites

2) Stuttering: this should not happen on modern processors with constant_tsc, but in case yours doesn't have constant tsc, you need to use a speedstep kernel. Either use existing ToH kernels (no sleep), or wait for my 9.4 kernel.

 

Sometimes the throttlin happens quiet often, and the strain all the IOLog outputs put on the system causes stutter.

Link to comment
Share on other sites

I don't run any other OS than OS X, so if anyone with a Q6600 (G0) could find out whether there are any more PStates besides the reported ones (below), I'd be incredibly thankful =D

8/12/08 11:04:07 AM kernel IntelEnhancedSpeedStep: INFO  P-State 0: 2400 MHz at 1564 mV, consuming 88 W, latency 160 usec 
8/12/08 11:04:07 AM kernel IntelEnhancedSpeedStep: INFO  P-State 1: 1600 MHz at 1564 mV, consuming 56 W, latency 160 usec

Link to comment
Share on other sites

Intel Core Duo T2500 (family 6, model 14, stepping 8)<---according to "sysctl machdep.cpu && uname -a".

 

I am using 9.4 vanilla kernel.

 

I have set up my own P-state table based on windows values. Without setting up the P-state table no states are detected. In windows the voltage does go as low as 950mV so i dont think the processor is limiting it.

 

sudo dmesg | grep IntelEnhancedSpeedStep

 

sysctl machdep.cpu && uname -a

 

sysctl -a | grep throttle

 

Thanks again

 

What software in Windows you use to get the P-state values? Thanks!

Link to comment
Share on other sites

machdep.cpu.address_bits.virtual: 48
machdep.cpu.address_bits.physical: 36
machdep.cpu.cache.size: 2048
machdep.cpu.cache.L2_associativity: 6
machdep.cpu.cache.linesize: 64
machdep.cpu.arch_perf.fixed_width: 40
machdep.cpu.arch_perf.fixed_number: 3
machdep.cpu.arch_perf.events: 0
machdep.cpu.arch_perf.events_number: 7
machdep.cpu.arch_perf.width: 40
machdep.cpu.arch_perf.number: 2
machdep.cpu.arch_perf.version: 2
machdep.cpu.thermal.ACNT_MCNT: 1
machdep.cpu.thermal.thresholds: 2
machdep.cpu.thermal.dynamic_acceleration: 0
machdep.cpu.thermal.sensor: 1
machdep.cpu.mwait.sub_Cstates: 139808
machdep.cpu.mwait.extensions: 3
machdep.cpu.mwait.linesize_max: 64
machdep.cpu.mwait.linesize_min: 64
machdep.cpu.cores_per_package: 2
machdep.cpu.logical_per_package: 2
machdep.cpu.extfeatures: XD EM64T
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM SSE3 MON DSCPL EST TM2 SSSE3 CX16 TPR PDCM
machdep.cpu.brand: 0
machdep.cpu.signature: 1789
machdep.cpu.extfeature_bits: 537919488 1
machdep.cpu.feature_bits: -1075053569 58269
machdep.cpu.stepping: 13
machdep.cpu.extfamily: 0
machdep.cpu.extmodel: 0
machdep.cpu.model: 15
machdep.cpu.family: 6
machdep.cpu.brand_string: Intel(R) Core(TM)2 Duo CPU	 T5250  @ 1.50GHz
machdep.cpu.vendor: GenuineIntel
Darwin CaribouZland.local 9.4.0 Darwin Kernel Version 9.4.0: Mon Jun  9 19:30:53 PDT 2008; root:xnu-1228.5.20~1/RELEASE_I386 i386

 

 

1004 is reported by terminal, but Coolbookcontroler report 950mv as it's specified in plist...

 

I've tried with my old speedstep kernel (92) : no change, still stuttering with app Gui and terminal...

Link to comment
Share on other sites

Coolbook is not free.

Coolbook only does undervolting, no speedstep

Coolbook expects AppleIntelCPUPowerManagement.kext to exist and do the speedstepping work, which most hacks don't have

Coolbook doesn't work on a lot of real macs, let alone hackintosh. It doesn't support Pentium4 or M

Coolbook assumes 12.5 mV steps regardless of CPU type.

Coolbook doesn't send clock recalibration signals to the kernel for CPUs without constant tsc.

Coolbook is not developed by a hackintosh user tongue.gif with no sourcecode available

..That's enough for now. I think this kext works better than Coolbook in just about every way, and supports more computers too. The only thing which Coolbook allegedly has over the kext is support for N/2 bus ratio, which I'll add to v1.3 soon so people can go below 1Ghz. But then I've not seen anyone use Coolbook to go below 1Ghz either.

It seems enough to convince me that your speestep kext is better than cooolbook.:angel:

However I bought Coolbook 2 or 3 weeks ago.I used it on my computer just once, so I could give it to you for test if you want to.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...