Jump to content

New version 1.1 of GenericCPUPowerManagement


Superhai
 Share

625 posts in this topic

Recommended Posts

ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "CPU "

"CPU Status" = {"Auto Throttle"=Yes,"Load"=0x353,"Temperature"=0x29,"High jump"=0x12c,"Voltage"=0x471,"Timer"=0xfa,"Low jump"=0x96,"Frequency"=0x4,"Kext Timer"=0x2b,"Kext Online"=Yes,"Current state"=0x0,"Voltage ID"=0x22,"Frequency ID"=0x86}

"CPU Init" = {"CTL max"=0x8622,"FSB frequency min"=0x6,"Signature"=0x10676,"FSB frequency max"=0x3,"CTL min"=0x611,"Kext unlock"=No,"Kext version"=0x10010,"Brand string"="Intel® Core2 Duo CPU T8100 @ 2.10GHz","Voltage max"=0x471,"Frequency min"=0x9,"Frequency max"=0x4,"Voltage min"=0x39d}

Link to comment
Share on other sites

With 1.0.16 i get 600-2000MHz and 850-1250mV shown in the app. Auto goes from 600-1000-1400-2000 i think. Works great

 

This is sudo ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "CPU " output:

"CPU Status" = {"Auto Throttle"=Yes,"Load"=0x118,"Temperature"=0x2d,"Current profile"=0x0,"High jump"=0x12c,"Voltage"=0x3cf,"Timer"=0xfa,"Low jump"=0x96,"Frequency"=0x3e8,"Kext Timer"=0x3e4,"Kext Online"=Yes,"Current state"=0x2,"Voltage ID"=0x15,"Frequency ID"=0x8a}

"CPU Init" = {"CTL max"=0xa2b,"FSB frequency min"=0x190,"Signature"=0x6fa,"FSB frequency max"=0x320,"CTL min"=0x860b,"Kext unlock"=No,"Kext version"=0x10010,"Brand string"="Intel® Core2 Duo CPU T7300 @ 2.00GHz","Voltage max"=0x4e2,"Frequency min"=0x258,"Frequency max"=0x7d0,"Voltage min"=0x352}

 

Grep from dmesg gives:

GenericCPUPowerManagement: Unloading

GenericCPUPowerManagement: Generic CPU Power Management Driver 1.0 © 2008 Superhai Development Co, based on works by mercurysquad

GenericCPUPowerManagement: For internal use only. All Rights Reserved. Support and documentaion http://www.superhai.com/

 

Not that much info there :D

 

CPU is T7300, i think it should go from 800-2000 but 600 as lowes suits me fine as long as its stable.

 

/roos

Link to comment
Share on other sites

CPU Status" = {"Auto Throttle"=Yes,"Load"=0x0,"Temperature"=0x37,"Current profile"=0x0,"High jump"=0x12c,"Voltage"=0x3e8,"Timer"=0xfa,"Low jump"=0x96,"Frequency"=0x4b0,"Kext Timer"=0x77b,"Kext Online"=Yes,"Current state"=0x1,"Voltage ID"=0x17,"Frequency ID"=0x6}

"CPU Init" = {"CTL max"=0x925,"FSB frequency min"=0x190,"Signature"=0x6fd,"FSB frequency max"=0x320,"CTL min"=0x8613,"Kext unlock"=No,"Kext version"=0x10010,"Brand string"="Intel® Core2 Duo CPU T7100 @ 1.80GHz","Voltage max"=0x497,"Frequency min"=0x258,"Frequency max"=0x708,"Voltage min"=0x3b6}

 

 

The lowest my CPU (T7100) goes to is 1200, do you think it could go any lower e.g 600?? And one last question, how do I mess with the voltage, are there any values for my CPU?

 

thx

Link to comment
Share on other sites

This is the output from the kext in terminal:

Any help for you?

 

enericCPUPowerManagement: [Error] AMD found!

GenericCPUPowerManagement: [Error] Unable to find a matching or supported cpu id in table

GenericCPUPowerManagement: Please provide the following info to make it into a later update

GenericCPUPowerManagement: CPU Vendor: AMD [AMD Athlon 64 Processor 3200+]

GenericCPUPowerManagement: CPU Signature: 30ff2

GenericCPUPowerManagement: Mobile: 0 Latency: 100

GenericCPUPowerManagement: State 0 [2a0c] State X [2c82]

GenericCPUPowerManagement: -- ACPI CTL 0 E0202A0C

GenericCPUPowerManagement: 00-05:FID 0C 06-10:VID 08 11-17:VST 05 18-19:MVS 0 20-26:PLL 02 27:EXT 0 28-29:RVO 2 30-31:IRT 3

GenericCPUPowerManagement: -- ACPI CTL X E0202C82

GenericCPUPowerManagement: 00-05:FID 02 06-10:VID 12 11-17:VST 05 18-19:MVS 0 20-26:PLL 02 27:EXT 0 28-29:RVO 2 30-31:IRT 3

GenericCPUPowerManagement: -- MSR_AMD_FIDVID_CTL MSR 0000070C 00002710

GenericCPUPowerManagement: 00-04:FID 0C 08-12:VID 00

GenericCPUPowerManagement: 16:FIDC 0 17:VIDC 0 20:FIDCHGRATIO 0

GenericCPUPowerManagement: 32-51:SGTC 02710

GenericCPUPowerManagement: -- MSR_AMD_FIDVID_STS MSR 060C0C0C 12060807

GenericCPUPowerManagement: 00-05:CFID 0C 08-13:SFID 00 16-21:MFID 0C

GenericCPUPowerManagement: 32-37:CVID 07 40-45:SVID 00 48-53:MVID 08

Link to comment
Share on other sites

Hi,

I don't know, but somehow your kext version 1.0.2 is the only one that seems to be "useful" for me. That kext actually throttles my cpu by several speeds and voltages. It even overclocks it by 300 MHz if my system is under heavy load (which is fine for me if it is just for a short time).

All other versions give me only two states (1998 MHz and 2664 MHz resp. 1037V 1112V) which is obviously not the whole "throttling range".

The latest debug version doesn't give enough output, I'm afraid:

 

Oct 21 08:32:35 localhost kernel[0]: GenericCPUPowerManagement: [Debug] Requested new p-state 061A
Oct 21 08:32:35 localhost kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6
Oct 21 08:32:35 localhost kernel[0]: GenericCPUPowerManagement: [Debug] We have loaded completely and ready for action
Oct 21 08:32:37 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 1 with fid 8 p-state fid 8
Oct 21 08:32:40 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6
Oct 21 08:32:43 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 1 with fid 8 p-state fid 8
Oct 21 08:32:45 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6
Oct 21 08:32:48 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6
Oct 21 08:32:50 smac kernel[0]: GenericCPUPowerManagement: [Debug] Requested new p-state 061A
Oct 21 08:32:50 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6
Oct 21 08:32:53 smac kernel[0]: GenericCPUPowerManagement: [Debug] Requested new p-state 061A
Oct 21 08:32:53 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6

 

I don't know how to get as much output as you guys. It doesn't even show my cpu with dmesg...

What am I doing wrong? Am I missing sth?

 

Thx for your work, superhai

 

Okay, I managed to load the latest debug version (v.1.0.16):

 

CPU Type [intel® Core2 Duo CPU E8200 @ 2.66GHz]

 

Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: Generic CPU Power Management Driver 1.0 (C) 2008 Superhai Development Co, based on works by mercurysquad
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: For internal use only. All Rights Reserved. Support and documentaion http://www.superhai.com/
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] ---
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] P-state 0 -> fid 8 (2664000000), vid 20 (1112)
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] P-state 1 -> fid 7 (2331000000), vid 1d (1075)
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] P-state 2 -> fid 6 (1998000000), vid 1b (1050)
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] P-state 3 -> fid 6 (1998000000), vid 1a (1037)
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] EIST Enabled and Locked
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Clock rate: CPU 1998 MHz - Bus 1332 MHz - Dec 1000 MHz
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Bus clock rate 100000000 - den 1
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Bus/CPU rate 6 - den 2
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Bus/dec rate 1 - den 0
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Timebase frequency 1000000000 hz
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] CPU min/max (1998 MHz - 2664 MHz)
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Bus min/max (1332 MHz - 1332 MHz)
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Auto timeout 250, high 300, low 150
Oct 28 14:23:39 smac kernel[0]: GenericCPUPowerManagement: [Debug] Requested new p-state 0820
Oct 28 14:23:40 smac kernel[0]: GenericCPUPowerManagement: [Debug] Requested new p-state 061A
Oct 28 14:23:40: --- last message repeated 1 time ---
Oct 28 14:23:40 smac kernel[0]: GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
Oct 28 14:23:40 smac kernel[0]: GenericCPUPowerManagement: [Debug] We have loaded completely and ready for action

 

Oct 28 14:23:38 smac kernel[0]: GenericCPUPowerManagement: [Debug] Found 2 p-states in ACPI table

 

Same like mitch_de, autothrottling doesn't turn off here (Asus P5GC-MX/1333).

 

N.B. What does it mean?: I/O Kit CPU count (2) is different from ACPI CPU count (4)

 

Thanks again :huh:

Link to comment
Share on other sites

Can autothrottle function without using the app?

SURE!

The app is only for showing the trottle (in this early app version).

You can close the control app - .kext trottles until you kextunload it or reboot.

 

The only thing which dindt work is the opposite - to set autotrottle off and as an fixed MHZ.

Herefore we will need an newer cotrol app i think.

Link to comment
Share on other sites

This is the output from the kext in terminal:

Any help for you?

 

You may try the new version 1.0.17 and see if it works. If it panics try to show me the panic info. AMD is very untested so you are on your own. For other AMD users, I need feedback to make it work.

Link to comment
Share on other sites

Superhai,

 

Sorry for committing a grievous sin, I don't have time to read the thread through right now. But, I'm gaining time on my config (T9300). Not that much, about five minutes in two hours. My ioreg is a few up in the thread. Let me know if you need anything. Sound is fine, I haven't checked video.

 

Thanks,

theStevo

Link to comment
Share on other sites

Superhai,

 

here is the output for AMD 4 X2 4600+:

 

GenericCPUPowerManagement: [Error] Unable to find a matching or supported cpu id in table
GenericCPUPowerManagement: Please provide the following info to make it into a later update
GenericCPUPowerManagement: CPU Vendor: AMD [AMD Athlon(tm) 64 X2 Dual Core Processor 4600+]
GenericCPUPowerManagement: CPU Signature: 20fb1
GenericCPUPowerManagement: Mobile: 0 Latency: 100
GenericCPUPowerManagement: State 0 [2a90] State X [2c82]
GenericCPUPowerManagement: -- ACPI CTL 0 E0202A90
GenericCPUPowerManagement: 00-05:FID 10 06-10:VID 0A 11-17:VST 05 18-19:MVS 0 20-26:PLL 02 27:EXT 0 28-29:RVO 2 30-31:IRT 3
GenericCPUPowerManagement: -- ACPI CTL X E0202C82
GenericCPUPowerManagement: 00-05:FID 02 06-10:VID 12 11-17:VST 05 18-19:MVS 0 20-26:PLL 02 27:EXT 0 28-29:RVO 2 30-31:IRT 3
GenericCPUPowerManagement: -- MSR_AMD_FIDVID_CTL MSR     00000A10 0007FFFF
GenericCPUPowerManagement: 00-04:FID  10 08-12:VID  00
GenericCPUPowerManagement:    16:FIDC 0    17:VIDC 0    20:FIDCHGRATIO 0
GenericCPUPowerManagement: 32-51:SGTC 7FFFF
GenericCPUPowerManagement: -- MSR_AMD_FIDVID_STS MSR     08101010 12080A0A
GenericCPUPowerManagement: 00-05:CFID 10 08-13:SFID 00 16-21:MFID 10
GenericCPUPowerManagement: 32-37:CVID 0A 40-45:SVID 00 48-53:MVID 0A
GenericCPUPowerManagement: Unloading

Link to comment
Share on other sites

Please help, my CPU doesnt go below 1200. How can I fix this??

You must give superhai all needed info !!!

Use the debug version and post the messages you can get with dmesg in the terminal.

Also all infos about your CPU needed.

 

 

 

 

Please help, my CPU doesnt go below 1200. How can I fix this??

You must give superhai all needed info !!!

Use the debug version and post the messages you can get with dmesg in the terminal.

Also all infos about your CPU needed.

Link to comment
Share on other sites

Could you maybe change it in the next version?

 

I could, but I would need a good explanation to why I should. What are you using with those extra p-states. IDA mode should come at a later stage, if there is big demand. I don't think it does much use on osx as both cores are mostly in use all the time.

Link to comment
Share on other sites

The kext depends on correct fsb frequency, on your system the fsb seem to be 4 times higher than what it is supposed to be.

A lot of kexts and other things can modify the gPE* bus frequency info as it's just a global. Your best bet is to use the FSB frequency from EFI as this is not modified by anything except bootloader, and is usually always correct (at least for Chameleon!). As I said pentium M is a bit tough to get right because of its non-constant tsc :D

Link to comment
Share on other sites

A lot of kexts and other things can modify the gPE* bus frequency info as it's just a global. Your best bet is to use the FSB frequency from EFI as this is not modified by anything except bootloader, and is usually always correct (at least for Chameleon!). As I said pentium M is a bit tough to get right because of its non-constant tsc :)

 

I know, it is after all how SMBIOSResolver gets the frequency from the very beginning, and I considered this. But chameleon or other "efi"-solutions is unfortunately not guaranteed to be installed. And from feedback of smbiosresolver, chameleon is not able to set right frequency in quiet a lot of cases. So I made this design decision, and it is better to let the user find a kext that sets this value right in the first place. And there are not a lot of kexts that does modify that structure.

Link to comment
Share on other sites

I could, but I would need a good explanation to why I should. What are you using with those extra p-states. IDA mode should come at a later stage, if there is big demand. I don't think it does much use on osx as both cores are mostly in use all the time.

 

Thanks for fast answer.

 

I use Windows with this config (SLFM 600,800; 1200,1400,1600,1800,2000) and the FAN signifcant turns less often on as with your config for MacOS.

Link to comment
Share on other sites

I noticed that when i use GenericCPUPowerManagement.kext from EFI partiton (aka Munkys EFI boot solution, using the hidden EFI partiton). It displays Mhz wrong, i get like 150-275 Mhz. But when i put the .kext in /S/L/E it shows 997-1833 Mhz which is correct. I've also tested to add:

 

<key>OSBundleRequired</key>

<string>Root</string>

 

but that doesnt help, so i wonder is the .kext dependent on some other .kext that i need to put on the EFI partition to make it display correct MHz. This also makes me think using .kext .mkext from a bootloader partition might not give 100% correct result on other .kext to.

 

Anyone got some ide why this happens?

 

EDIT: Looks like that wasnt the problem afterall, so basicly i got it to display Mhz correct one time. But now it shows wrong mhz again. No edit done to the .plist.

Link to comment
Share on other sites

I use Windows with this config (SLFM 600,800; 1200,1400,1600,1800,2000) and the FAN signifcant turns less often on as with your config for MacOS.

 

If there are significant differences, the issue is somewhere else.

 

but that doesnt help, so i wonder is the .kext dependent on some other .kext that i need to put on the EFI partition to make it display correct MHz.

 

It needs the frequency for fsb set as said earlier on. Which might be the case if i.e. any smbios kexts are not loaded yet.

Link to comment
Share on other sites

I could, but I would need a good explanation to why I should. What are you using with those extra p-states. IDA mode should come at a later stage, if there is big demand. I don't think it does much use on osx as both cores are mostly in use all the time.

 

I have a T7300 too. When running with the kext and the app set to displaying freq I see it jump back and forth between 600 and 1000 quite a lot. For instans just by typing this message in safari it switches all the time. When I in a former version got 800-1200-1600-2000 it was very stable in 800 except when doing something heavy.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...