Jump to content

New version 1.1 of GenericCPUPowerManagement


Superhai
 Share

625 posts in this topic

Recommended Posts

The same thing happens on a few gigabyte boards, including my own. The kext tries to take full control from bios, but it doesnt seem to work on those boards.

Thanks !

We talked about that gigabyte special "autobiosthrottle autospeedtepthrottle" thing before - i believe you , no problem.

Link to comment
Share on other sites

Thanks for the newest kext (.13)!

major changes:

- some seen that highest MHZ wasnt OK, we thought thats because of overcloked> fsb wrong and only an cosmetic problem.

But it was not only cosmetic. With newest kexz i get one pstate more, the pstate(0). I also remember that i was wondering why i get on highest MHZ a bit too less VID. Now i know: the highest MHZ wasnt really highest, now i get the highest (pstate 0) with highger VID.

Link to comment
Share on other sites

Looks like 1.0.13 disabled SLFM mode and increased min multiplier/frequency.

 

Now there are 4 states:

1200 (reports at .925mv, used to be .950mv in .12, same as 800mhz)

1600

2000

2400

 

All states for T8300:

600 (8x, SLFM)

800 (6x)

1200 (7x)

1600 (8x)

1800 (9x)

2000 (10x)

2200 (11x)

2400 (12x)

Link to comment
Share on other sites

Looks like 1.0.13 disabled SLFM mode and increased min multiplier/frequency.

 

Now there are 4 states:

1200 (reports at .925mv, used to be .950mv in .12, same as 800mhz)

1600

2000

2400

 

It wasnt supposed to disable that. Try 1.0.14 and see if it improves. If it doesnt

 

please post output of

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

and also try the debug version and post

sudo dmesg | grep  GenericCPUPowerManagement

also

 

Also I have added AMD support. It will as the Intel cpus not work before I added the cpu to the table, so I need your feedback.

Link to comment
Share on other sites

Not working with .14 either.

 

Here is the debug output:

 

	  "CPU Status" = {"Auto Throttle"=Yes,"Load"=0x50,"Temperature"=0x2d,"High jump"=0x258,"Voltage"=0x39d,"Timer"=0xfa,"Low jump"=0x190,"Frequency"=0x4b0,"Kext Timer"=0x2a,"Kext Online"=Yes,"Current state"=0x3,"Voltage ID"=0x13,"Frequency ID"=0x6}
  "CPU Init" = {"CTL max"=0xc22,"FSB frequency min"=0x320,"Signature"=0x10676,"FSB frequency max"=0x320,"CTL min"=0x611,"Kext unlock"=No,"Kext version"=0xffffffff8001000e,"Brand string"="Intel(R) Core(TM)2 Duo CPU	 T8300  @ 2.40GHz","Voltage max"=0x471,"Frequency min"=0x4b0,"Frequency max"=0x960,"Voltage min"=0x39d}

 

GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0C22
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0C22
GenericCPUPowerManagement: [Debug] Current p-state 0 with fid 12 p-state fid 12 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0A1C
GenericCPUPowerManagement: [Debug] Current p-state 1 with fid 10 p-state fid 10 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0C22
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 6 pos 1

 

Edit: Looks like there are some problems with .14, it takes a long time to max frequency like the older ones. (due to debug version?, not sure)

Link to comment
Share on other sites

1st - Very nice stuff!

 

I tried Generic CPU Power Mgmt, and it works well with my "Pentium Dual-Core" E2140 1.6GHz CPU.

But it apparently disables my overclock, which the system runs normally / daily-use. Since it's so slow, the cheapest of the Core2 Pentium line, I need it running overclocked. It's totally fine overclocked to 2.3GHz, and many people run it at 3.0GHz (my motherboard's FSB can't go high enough for that).

 

When I load the kext for Generic CPU P. M. it immediately sets my CPU back to defaults, even though the system is overclocked by BIOS settings. It would be much nicer if the kext & app would let me down-clock from my normal overclocks. But it's still useful as it is, but I just can't get my overclocked frequency back unless I reboot. Unloading the kext doesn't do it.

 

Is there any way to keep this power mgmt kext from dropping the overclocked frequency to the default 1.6GHz ?

Link to comment
Share on other sites

Not working with .14 either.

Edit: Looks like there are some problems with .14, it takes a long time to max frequency like the older ones. (due to debug version?, not sure)

Yes, in the debug version there are some "extra waits" between the steppings. Maybe thats the reason why stepping takes longer.

 

to other user:

When I load the kext for Generic CPU P. M. it immediately sets my CPU back to defaults, even though the system is overclocked by BIOS settings.

Have you tried to get an higher CPU load% (> 80% , run geekbench other longer running cpu hoog) ?

I have also an OC CPU, C2D orig. 2000MHZ, OC to 2400 (FSB from 200 to 240). NO PROBLEM here - this kext didnt change anything of the OC of my BIOS settings (FSB+). The only thing maybe that your CPU MHZ shown is not the "real". For me that happens also, but new V .13 have fixed that, my OC C2D now shows real, OC MHZ (2400, before included V012 only 2000MHZ). In which way do you OC your CPU (FSB like me) ?

SUPERHAI: Thanks for the newer source.

Q: I am not exact sure about that throtthle variables / throttle const:

const unsigned int jump_high = 850;

const unsigned int jump_low = 150;

const unsigned int initial_high = 600;

const unsigned int initial_low = 400;

When i want that my desktop cpu steps down on less CPUload to lower MHZ=stays "longer" on higher MHZ, and steps on less %cpuload to higher MHZ=steps up "faster" to higher MHZ - must i only change initial_low to 200 , initial_high = 400, jump_high = 500, jump_low 100 ??

All some % less or would that (less values) does the opposite ?

Thanks

Link to comment
Share on other sites

I 've just made an new Hack on my mom's new amd pc, the system freeze when i try to load the DEBUG kext, don't see if it KP, it just completly freeze system, and make no trace in console... i will try with another kernel to see if i can load without freezing, to post some information.

 

Proc is an AMD Athlon 64 2800+ (no SEE 3...but C'N'Q !)

 

EDIT : Freeze with all AMD kernels, no trace in console, no KP, even in single user mode, it freeze... :D

 

Would like to put some information about...

Link to comment
Share on other sites

I 've just made an new Hack on my mom's new amd pc, the system freeze when i try to load the kext, don't see if it KP, it just completly freeze system, and make no trace in console... i will try with another kernel to see if i can load without freezing, to post some information.

 

Proc is an AMD Athlon 64 2800+ (no SEE 3...but C'N'Q !)

 

Try a kextload from single user mode (-s)

 

Not working with .14 either.

 

Edit: Looks like there are some problems with .14, it takes a long time to max frequency like the older ones. (due to debug version?, not sure)

 

Try the new uploaded version. And yes, the debug version is much slower. It multiplys the time with 10. This is to accomodate the debug output and not kill system.log.

Link to comment
Share on other sites

Quick heads up for Pentium M users: a new auto-throttling version of my speedstep kext is out now. AMD support will come soon. Link in sig.

Really, really good now !

It reacts smoother and faster than superhais kext to changes of cpu load (your default load is 30%, i believe superhais is over that - for me too much slower MHZ!).

 

superhai: Can you tell me which constants i must change in code that your kext reacts more early to cpu load ?

I am not exact sure about that throtthle variables / throttle const:

const unsigned int jump_high = 850;

const unsigned int jump_low = 150;

const unsigned int initial_high = 600;

const unsigned int initial_low = 400;

 

faster timer setting (faster than the default 250 mS) isnt the real solution because takes more cpu cycles and didnt help!

Link to comment
Share on other sites

Really, really good now !

It reacts smoother and faster than superhais kext to changes of cpu load (your default load is 30%, i believe superhais is over that - for me too much slower MHZ!).

 

superhai: Can you tell me which constants i must change in code that your kext reacts more early to cpu load ?

I am not exact sure about that throtthle variables / throttle const:

const unsigned int jump_high = 850;

const unsigned int jump_low = 150;

const unsigned int initial_high = 600;

const unsigned int initial_low = 400;

 

faster timer setting (faster than the default 250 mS) isnt the real solution because takes more cpu cycles and didnt help!

 

There is settings under Control in Info.plist to change the throttle level control. It is step_up and step_down

<key>step_up</key>

<integer>600</integer>

<key>step_down</key>

<integer>400</integer>

step_up is load in promille for when to jump to a faster state, step_down is to slower. They can have values from 151 to 849 and step_down must be lower than step_up. If you want it to throttle up at 30% load you set step_up to 300, and you can set step_down to like 200 or whatever suits you. You should not change the source, it is not necessary. I plan to have to profiles, connected with my ACPIBattery kext, one for battery and one for AC, but that is coming later. And I think 250 ms (not mS :-) ) is good timeout value.

Link to comment
Share on other sites

I plan to have to profiles, connected with my ACPIBattery kext, one for battery and one for AC, but that is coming later. And I think 250 ms (not mS :-) ) is good timeout value.

 

Love that idea !!!!

 

Where do i find panic logs ??? Search everywhere...

 

Oops..noob question !

Link to comment
Share on other sites

There is settings under Control in Info.plist to change the throttle level control. It is step_up and step_down

step_up

600

step_down

400

step_up is load in promille for when to jump to a faster state, step_down is to slower. They can have values from 151 to 849 and step_down must be lower than step_up. If you want it to throttle up at 30% load you set step_up to 300, and you can set step_down to like 200 or whatever suits you. You should not change the source, it is not necessary. I plan to have to profiles, connected with my ACPIBattery kext, one for battery and one for AC, but that is coming later. And I think 250 ms (not mS :-) ) is good timeout value.

 

THANKS - very good that you now have made entries in the .plist.

So both- desktop users which want only avoid highest MH on low cpu load (step_up to 151-200) and mobile users which want also avoid midrange MHZ on lower cpu load (step_up to 500-700).

I also think 250 mS is good.

Link to comment
Share on other sites

Where do i find panic logs ??? Search everywhere...

 

Problem with hackintoshes is that the panic logs are written to nvram... which doesnt normally work... therfore all the flash/fingerprint shots around.

If you think it panics, run it with verbose mode (-v option in darwin prompt) or from single user mode (-s option). Then take a nice snapshot of the panic image.

Link to comment
Share on other sites

Try the new uploaded version. And yes, the debug version is much slower. It multiplys the time with 10. This is to accomodate the debug output and not kill system.log.

 

This version is worse, now it doesn't step to max frequency but falls back to SLFM.

Can't even force throttle to 2400Mhz (goes to 600Mhz), max is 2200Mhz.

 

	  "CPU Status" = {"Auto Throttle"=Yes,"Load"=0x266,"Temperature"=0x2c,"High jump"=0x258,"Voltage"=0x39d,"Timer"=0xfa,"Low jump"=0x190,"Frequency"=0x258,"Kext Timer"=0x20,"Kext Online"=Yes,"Current state"=0x3,"Voltage ID"=0x13,"Frequency ID"=0x86}
  "CPU Init" = {"CTL max"=0xc22,"FSB frequency min"=0x190,"Signature"=0x10676,"FSB frequency max"=0x320,"CTL min"=0x8611,"Kext unlock"=No,"Kext version"=0xffffffff8001000e,"Brand string"="Intel(R) Core(TM)2 Duo CPU	 T8300  @ 2.40GHz","Voltage max"=0x471,"Frequency min"=0x258,"Frequency max"=0x960,"Voltage min"=0x39d}

 

GenericCPUPowerManagement: [Debug] Requested new p-state 8611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 8611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 8611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0000
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0616
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0C22
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0C22
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 12 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0000
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 8611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0C22
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 8611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 0000
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 6 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Requested new p-state 8611
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1
GenericCPUPowerManagement: [Debug] Current p-state 3 with fid 134 p-state fid 134 pos 1

Link to comment
Share on other sites

THANKS - very good that you now have made entries in the .plist.

So both- desktop users which want only avoid highest MH on low cpu load (step_up to 151-200) and mobile users which want also avoid midrange MHZ on lower cpu load (step_up to 500-700).

I also think 250 mS is good.

 

They have always been there, I just havent documented them. :unsure: Yes I agree, I initially set the numbers for laptop uses, but I see many desktop users also like it.

Link to comment
Share on other sites

They have always been there, I just havent documented them. :unsure: Yes I agree, I initially set the numbers for laptop uses, but I see many desktop users also like it.

i LOVE such eastereggs :blink:

 

I changed it, and now ist for me very good (i rised the timer to 333 mS, fast enough, because much lower cpu load trotthes)

With this combination my desktop system is very snappy - even more than if i only set time to very fast (150 mS) but default(higher) up/down.

Thanks , all working now great !!!

Bild_59.jpg

Link to comment
Share on other sites

Do we need your ACPIBattery kext or can we use chunchan's one (Because with yours unplug isn't "recognized" for me...) ?

 

I will try to make a good snapshot of my KP, but with a SE W660 on a CRT 17", i won't see all...

Link to comment
Share on other sites

Nice Work Superhai.

 

My C2D Laptop works perfect now with the the new GenericCPUPowerManagement.kext and you ACPIBattery.kext.

 

Btw will you update the Controll app so that it displays real Mhz and save the settings?

Link to comment
Share on other sites

Do we need your ACPIBattery kext or can we use chunchan's one (Because with yours unplug isn't "recognized" for me...) ?

 

I think it will work, because I think he also uses IOPMPowerSource. I will update the app to show which state its in. But you can run the debug version also, it will tell if it detects it runs on battery or not.

Link to comment
Share on other sites

Version 10.0.15 did not work well on mine, it's stuck most of the time at 600Mhz, and rarely throttling to 900Mhz.

On the previous version, it did throttle between 1200Mhz and 1600Mhz (no 1400Mhz).

 

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

"CPU Status" = {"Auto Throttle"=Yes,"Load"=0xc8,"Temperature"=0x26,"High jump"=0x12c,"Voltage"=0x2d5,"Timer"=0xfa,"Low jump"=0x96,"Frequency"=0x258,"Kext Timer"=0x112e,"Kext Online"=Yes,"Current state"=0x3,"Voltage ID"=0xf,"Frequency ID"=0x86}

"CPU Init" = {"CTL max"=0x801,"FSB frequency min"=0x190,"Signature"=0x6fd,"FSB frequency max"=0x320,"CTL min"=0x8601,"Kext unlock"=Yes,"Kext version"=0x1000f,"Brand string"="Intel® Core2 Duo CPU T5470 @ 1.60GHz","Voltage max"=0x2d5,"Frequency min"=0x258,"Frequency max"=0x640,"Voltage min"=0x2d5}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...