Jump to content

New version 1.1 of GenericCPUPowerManagement


Superhai
 Share

625 posts in this topic

Recommended Posts

I remind you that you should always download latest version. And issues posted in this thread will not be looked at. Bugs must be reported at http://www.superhai.com/ And read the docs, including how to post a bug/issue. Telling me it doesn´t work is not helping at all, however a bug report with a description is actually possible to find why it doesnt work. And picture of a kernel panic or hang of the debug version in -s mode.

 

I think I should repeat it once again so maybe you will understand:

 

No bug reports, unsolved issues, here! -> post it on http://www.superhai.com/ forum

 

No proper bug reports - no solutions.

Link to comment
Share on other sites

I remind you that you should always download latest version. And issues posted in this thread will not be looked at. Bugs must be reported at http://www.superhai.com/ And read the docs, including how to post a bug/issue. Telling me it doesn´t work is not helping at all, however a bug report with a description is actually possible to find why it doesnt work. And picture of a kernel panic or hang of the debug version in -s mode.

 

I think I should repeat it once again so maybe you will understand:

 

Superhai: current issue that i m having is not in one of your drivers, so i dont know which section to post really, sorry for posting here, but all i want to know is where to look or who to ask?

 

I repeat again for my problem:

system is samsung nc10 netbook/945 chipset/950gma/1gb ram/160gb hdd/027210ec sound/

 

System sleeps perfectly fine when it is on battery

System sleeps for 1 secs and wakes up immidiately, when connected to power adapter

 

I tried all sort of driver configurations: vanilla acpi/apic, patched acpi/apic, vanilla PM bundle, patched pm bundle, powersource/or/acpibatterymanager, vanilla iousb/ehci, slice's iousb/ehci, your ehci solution... result is always same!, battery/sleep works, power adapter/sleep wakes up instantly, and in dsmeg/console usb caused wake event!.... system running on vanilla kernel always...

 

I beleive this has something to acpi or pm state/profiles issues related to feeding current/listening to usb ports... i cant confirm this myself but there is no other reasonable explanation... can you tell me who to ask, or what to do, please?

Link to comment
Share on other sites

Okay, I'm not taking this out on you in particular. But...

 

<rant>

 

Your first post is very detailed of this thing's specs. It has lots of troubleshooting information. This thread is very full of helpful posts from you, and excited thanks from people who use it.

 

However, something is missing from your original post. Can you guess what it is?

 

You have not said what it does. Nowhere in this thread is something that says "GenericCPUPowerManagement will reduce your power consumption. It will make your laptop run cooler and the battery last longer."

 

This is a trend I see all over this forum, and in my peers at school. It's something I think is built into every engineer. Please, for goodness sake, don't be "that" engineer on the team who everyone can't stand communicating with.

 

</rant>

Link to comment
Share on other sites

You have not said what it does. Nowhere in this thread is something that says "GenericCPUPowerManagement will reduce your power consumption. It will make your laptop run cooler and the battery last longer."

 

It was in the original post some time but after some updates it disappeared (I will put it back in again), and it was the first point in the original FAQ for v 1.0 (http://www.superhai.com/forum/viewtopic.php?f=15&t=38). It is also the first point in the documentation, but I should maybe clarify it more like it was in the first version of the FAQ. I am really no engineer ;) this is a hobby project based out of my own need to get things to work on my computer. I have very limited time to troubleshoot, which is the reason why I need as much information in the first place to fix things.

Link to comment
Share on other sites

Using 1.1.2 it's fine

P-state=1

2^1 = 2 states yeah ? :)

 

After i upgrade official bios 2.30 Asrock 939 Dual SATA II to OCWOrkbench 2.31C

above p-state number magic happens and no crash anymore.

 

AMD Athlon X2 3800+ , using 2 states 2000MHz and 1800MHz

even on gcpupmcontrol said that lowest frequency is 1000 MHz

but i think with power of two on states number, 3 states (1000-1800-2000) is impossible.

 

kazuya and obsidian ACPICPUThrottle have 3 states (1000-1800-2000) like on win xp or vista does.

 

it's autodetect max voltage is 1350mV and lowest 1300mV and this make my cpu sometime hangs.

so i override the value just like on Xp/Vista max 1400mV(same at the BIOS value) and min to 1100mV like on XP/Vista and your earlier kext detection on p-states show 1000MHZ(1100mV) - 1800MHz(1350mV) - 2000MHz(1400mV)

 

But thank's anyway, when i touch my cpu heatsink it's now much cooler. :(

 

The last it's a :)

Link to comment
Share on other sites

bash-3.2# dmesg | grep GenericCPUPowerManagement

GenericCPUPowerManagement: [Debug] Initialization : Probe

GenericCPUPowerManagement: [Debug] Found 2 I/O Kit CPU's and 2 ACPI CPU's

GenericCPUPowerManagement: [Debug] Your CPU supports constant TSC but only in C0 and C1, you should disable C2+ states

GenericCPUPowerManagement: [Debug] Minimum FID Probe

GenericCPUPowerManagement: [Debug] Minimum FID Probe Complete : 0F

GenericCPUPowerManagement: [Debug] Intel 00000F2D 00000F2D

GenericCPUPowerManagement: [Debug] CPU Hardware Driver Setup Complete

GenericCPUPowerManagement: [Debug] Initialization : Start

GenericCPUPowerManagement: [Debug] Attempting BIOS control handover

GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.3 (Debug) Dec 14 2008 02:58:07 [1050]

GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved

GenericCPUPowerManagement: [Debug] P-State 0: 3375 MHz [0F-00] - 1387 mV [2D]

GenericCPUPowerManagement: [Debug] CPU 0: CTL 0F2D TR 000

GenericCPUPowerManagement: [Debug] CPU 1: CTL 0F2D TR 000

GenericCPUPowerManagement: [Debug] Last loop used 0 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0087 P-State 0 (exact) and frequency 3375

GenericCPUPowerManagement: [Debug] CPU 1 load 0087 P-State 0 (exact) and frequency 3375

GenericCPUPowerManagement: [Debug] Last loop used 381 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0268 P-State 0 (exact) and frequency 3375

GenericCPUPowerManagement: [Debug] CPU 1 load 0263 P-State 0 (exact) and frequency 3375

 

bash-3.2# ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "Characteristics"

"Characteristics" = {"Voltage Highest"=0x56b,"Signature"=0xf41,"Front Side Bus Indicated"=0xbebc200,"CPU Count"=0x2,"Build Date"="Dec 14 2008","Constant TSC"=Yes,"Voltage Lowest"=0x339,"Front Side Bus"=0xd693a40,"VID Lowest"=0x0,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.3","Individual Core Control"=No,"Frequency Lowest"=0xd2f,"DID Lowest"=0x0,"Timer Timeout"=0xfa,"CPU Driver"=0x0,"Mobile CPU"=No,"Build Time"="02:58:07","Auto Throttle On Startup"=Yes,"Build Config"="Debug","Frequency Highest"=0xd2f,"String"="Intel® Pentium® 4 CPU 3.00GHz","DID Highest"=0x0,"FID Lowest"=0xf,"VID Highest"=0x2d,"FID Highest"=0xf,"P-State Count"=0x0}

 

bash-3.2# ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "Status"

"Status" = {"Wait Time TSC"=0xffffffff9ce83283,"Timer Timeout (ms)"=0xfa,"Wait Time Perf"=0xffffffff9ce83283,"P-State Limit"=0x0,"P-State Capability"=0x0,"Current Latency"=0x6,"Kernel Extension Ready"=Yes,"Auto Throttle Running"=No,"Threshold"=0xc8,"Profile"=0x0,"CPU"=({"Load"={"User"=0x107,"Accumulated"=0x151,"System"=0x4a,"Idle"=0x2a9,"Nice"=0x0},"Clock Modulation"=0x8,"Frequency"=0xd2f,"Current P-State"=0x0,"DID"=0x0,"VID"=0x2d,"Thermal Readout"=0x0,"Actual Performance"=0x0,"FID"=0xf,"Voltage"=0x56b,"Exact"=Yes,"Name"="CPU0"},{"Load"={"User"=0x71,"Accumulated"=0xac,"System"=0x3b,"Idle"=0x34d,"Nice"=0x0},"Clock Modulation"=0x8,"Frequency"=0xd2f,"Current P-State"=0x0,"DID"=0x0,"VID"=0x2d,"Thermal Readout"=0x0,"Actual Performance"=0x0,"FID"=0xf,"Voltage"=0x56b,"Exact"=Yes,"Name"="CPU1"}),"Hysteresis"=0x32,"Routine Payload TSC"=0xce33d}

Link to comment
Share on other sites

Where do you get 2^1 from? Anyway, new version should give you the lowest P-State back.

 

GenericCPUPowerManagement: [Debug] Initialization : Probe

GenericCPUPowerManagement: [Debug] Found 2 I/O Kit CPU's and 2 ACPI CPU's

GenericCPUPowerManagement: [Debug] AMD PN 060C0C02 12060808

GenericCPUPowerManagement: [Debug] CPU Hardware Driver Setup Complete

GenericCPUPowerManagement: [Debug] Initialization : Start

GenericCPUPowerManagement: [Debug] Attempting BIOS control handover

GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.3 (Debug) Dec 14 2008 02:58:07 [1050]

GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved

GenericCPUPowerManagement: [Debug] P-State 0: 2000 MHz [0C-00] - 1350 mV [08]

GenericCPUPowerManagement: [Debug] P-State 1: 1800 MHz [0A-00] - 1350 mV [08]

GenericCPUPowerManagement: [Debug] P-State 2: 0800 MHz [02-00] - 1550 mV [08]

GenericCPUPowerManagement: [Debug] CPU 0: CTL 0208 TR 000

GenericCPUPowerManagement: [Debug] CPU 1: CTL 0208 TR 000

GenericCPUPowerManagement: [Debug] Last loop used 0 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0104 P-State 2 (exact) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0110 P-State 2 (exact) and frequency 800

GenericCPUPowerManagement: [Debug] Last loop used 116 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0093 P-State 2 (exact) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0073 P-State 2 (exact) and frequency 800

 

hw.cpufrequency_max: 2000000000

hw.cpufrequency_min: 800000000

hw.cpufrequency: 800000000

 

"Status" = {"Wait Time TSC"=18446744073510762754,"Timer Timeout (ms)"=250,"Wait Time Perf"=18446744073510762754,"P-State Limit"=0,"P-State Capability"=0,"Current Latency"=100,"Kernel Extension Ready"=Yes,"Auto Throttle Running"=Yes,"Threshold"=200,"Profile"=0,"CPU"=({"Load"={"User"=84,"Accumulated"=113,"System"=29,"Idle"=904,"Nice"=0},"Clock Modulation"=0,"Frequency"=800,"Current P-State"=2,"DID"=0,"VID"=8,"Thermal Readout"=0,"Actual Performance"=0,"FID"=2,"Voltage"=1550,"Exact"=Yes,"Name"="CPU1"},{"Load"={"User"=99,"Accumulated"=128,"System"=29,"Idle"=889,"Nice"=0},"Clock Modulation"=0,"Frequency"=800,"Current P-State"=2,"DID"=0,"VID"=8,"Thermal Readout"=0,"Actual Performance"=0,"FID"=2,"Voltage"=1550,"Exact"=Yes,"Name"="CPU2"}),"Hysteresis"=50,"Routine Payload TSC"=171884}

 

"Characteristics" = {"Voltage Highest"=1350,"Signature"=135089,"Front Side Bus Indicated"=50000000,"CPU Count"=2,"Build Date"="Dec 14 2008","Constant TSC"=No,"Voltage Lowest"=1350,"Front Side Bus"=50000000,"VID Lowest"=8,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.3","Individual Core Control"=No,"Frequency Lowest"=1000,"DID Lowest"=0,"Timer Timeout"=250,"CPU Driver"=1,"Mobile CPU"=No,"Build Time"="02:58:07","Auto Throttle On Startup"=Yes,"Build Config"="Debug","Frequency Highest"=2000,"String"="AMD Athlon 64 X2 Dual Core Processor 3800+","DID Highest"=0,"FID Lowest"=2,"VID Highest"=8,"FID Highest"=12,"P-State Count"=2}

 

GenericCPUPowerManagement.kext 1.1.3 (Debug) Dec 14 2008 02:58:07

CPU: 2 x Desktop AMD Athlon 64 X2 Dual Core Processor 3800+ (20fb1)

P-States: 3 - Frequency 1000 MHz -> 2000 MHz - Voltage 1350 mV -> 1350 mV

[02-00-08] -> [0c-00-08]

Auto throttle on at startup: true, Voltage Override: false, Timer: 250 ms

 

Some probes still didn't proper, especially on voltage.

P-state number, on gcpupmcontrol result (there are 3 states) and ioreg result ( it's have 2 states) are different.

 

====================

 

But after i do override on max and min voltage with 1400mV and 800mV, according to BIOS menu.

i got this result

 

GenericCPUPowerManagement: [Debug] Initialization : Probe

GenericCPUPowerManagement: [Debug] Found 2 I/O Kit CPU's and 2 ACPI CPU's

GenericCPUPowerManagement: [Debug] AMD PN 060C0C02 12060808

GenericCPUPowerManagement: [Debug] CPU Hardware Driver Setup Complete

GenericCPUPowerManagement: [Debug] Initialization : Start

GenericCPUPowerManagement: [Debug] Attempting BIOS control handover

GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.3 (Debug) Dec 14 2008 02:58:07 [1050]

GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved

GenericCPUPowerManagement: [Debug] P-State 0: 2000 MHz [0C-00] - 1400 mV [06]

GenericCPUPowerManagement: [Debug] P-State 1: 1800 MHz [0A-00] - 1300 mV [0A]

GenericCPUPowerManagement: [Debug] P-State 2: 0800 MHz [02-00] - 1550 mV [1E]

GenericCPUPowerManagement: [Debug] CPU 0: CTL 0208 TR 000

GenericCPUPowerManagement: [Debug] CPU 1: CTL 0208 TR 000

GenericCPUPowerManagement: [Debug] Last loop used 0 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0105 P-State 2 (approximate) and frequency 1000

GenericCPUPowerManagement: [Debug] CPU 1 load 0110 P-State 2 (approximate) and frequency 1000

 

Lowest freq change from 800MHz (exact) --> 1000MHz (approximate) according to kext debug

 

hw.cpufrequency_max: 2000000000

hw.cpufrequency_min: 800000000

hw.cpufrequency: 1800000000

 

From sysctl still point to 800MHz

 

And still no proper voltage on 800MHz state (it's still 1550mV)

Link to comment
Share on other sites

Hi Superhai,

 

I run GenericCPUPowerManagement 1.1.3 on my retail os x. All works perfect. :angel:

See my hardware in the signature.

 

ThX

 

ChrisChros

All works perfect - my gratulation

1. does the V 1.1.3 do all mVoltages of your CPU Type (9XX - 13XX mV) or dont step really between all mVolts (means uses only 1 or 2 ) ?

2. does stepping use all PStates right ?

Thanks

My E4400 work since that new 1.X not really (wrong mVoltages, Overwrite didnt work really, wried+wrong PStatesTOCPULoad% steppings ) - for me V 1.0.20 is much, much, much better !

 

You get (PM me) 1037 - 1112 mV - even if that works , they may NOT be the values which would be possible.

Intel Doc to your CPU 8400 (Stepping doesnt matter for that case,)

Your 8400er 3 GHZ C0/E0 Stepping:0.85V – 1.3625V !!!

Intel may setup Min/MAX Voltage in the production process little different(individual!), but i believe

speedstep should get 950 mV and also 1250 at least for min/max mV.

I am sure the gap between lowest mV and highest CAN be bigger than your shown 1037 - 1112 mV !

http://processorfinder.intel.com/details.aspx?sSpec=SLAPL

 

Perhaps others which tell "works" didnt seen that VIDs are not all available !

 

As i told you, the older V 1.0.20 gives my E4400 perfekt bandwidth of available min/max Vids-MHz. The VID+MHz stepping

(doesnt matter which info.plist option i change) in newer versions works bad. Also MSR (an Tool which shows MHZ/mVolts) shows

that difference between V 1.0.20 and 1.1.13.

 

i believe thats not only an bug, it must be an sw design failture (complete different code for VID/MHZ switching than great V 1.0.20) in the new (AMD/Intel) kexts (since def beginning).

Link to comment
Share on other sites

Superhai, you stated somewhere that the OpenHaltRestart.kext function is integrated into your driver. Since the update to 10.5.6 I have the same old

issues with reboot and shutdown (pc does not turn off completely). Must say that OpenHaltRestart doesn't help either.

 

Any chance this will be fixed in future releases?

 

 

-relikwie

Link to comment
Share on other sites

Superhai, do you plan to make auto turn off the throttle when Power Adapter is connected to Latops?

 

No, but you can achieve the same thing by setting limit or capability so it only stays in highest or lowest p-state.

 

Any chance this will be fixed in future releases?

 

You have to find out what is blocking shutdown/restart, and fix that.

Link to comment
Share on other sites

No, but you can achieve the same thing by setting limit or capability so it only stays in highest or lowest p-state.

Thanks, I saw that the kext has already some states in the Info.plist link OnAC, OnBattery and OnLowBattery but I see no difference when the AC adaptor is plugged. If I set the limits when the AC is connected and then set other limits when is on battery should the settings be recognized when the AC is plugged again?

Link to comment
Share on other sites

Thanks, I saw that the kext has already some states in the Info.plist link OnAC, OnBattery and OnLowBattery but I see no difference when the AC adaptor is plugged. If I set the limits when the AC is connected and then set other limits when is on battery should the settings be recognized when the AC is plugged again?

 

Yes it should. If you run the gui app or cli tool, you can check which profile the kext is running under.

Link to comment
Share on other sites

My cpu loads up and the slider on the GUI is only at 1200 Mhz (1.2 Ghz effective) the FSB is correct the voltage is higher than wished but that doesn't matter, the thing is, is there a way of the GUI automatically showing and loading up the right speed of 2000 Mhz at start up? Sorry a bit of a noob at this sort of thing. Just got my xps m1530 working with everything even consistent sound (for more visit http://forum.insanelymac.com/index.php?showtopic=141528 ). Thanks for this as it increases my battery from just 1 hour to just under 2. Please I really want this to work.

Link to comment
Share on other sites

Can we create our own custom PState tables? I overclocked my cpu, and i want it to run fast when it has to, but not all the time

 

i tried looking in the sources, but i'm stupid and couldnt find it:P

also, the sources for the kext are still at 1.1.3

Link to comment
Share on other sites

OC Cpus use same PSTATEs (multipliers for FSB) as non OC CPUs.

So, like my E4400 normaly 2000 MHZ is OC by FSB 200>266 to 2666 MHZ.

The PSTATES as multipilers for FSB are same, so if multiplier = 6 (lowest MHZ), OC is 266*6 insted of 200*6.

You cant get below that.

 

SUPERHAI:

I want to say thankyou, even if i told you about some ??? problems with the stepping of my C2D.

Now i found out (in an complete other thing) that AppleHPET, the precision timer (other is AppleRTC, which is much less excat and less in performance) wasnt loaded anymore since Nov. Time i used DSDT patch.

Now i fixed that using option for NEW HPET (in the DSDT PATCHER GUI 1.0).

AppleHPET.kext is now loaded again.

Stepping seems to works better, also that lots of estimated measures of MHZ in the debug are gone, now they are exact.

Is it right that speedstep needs AppleHPET working good?

Users of speedstep can check that by using kextload in the terminal and look if AppleHPET is in the list of all aktive/loaded drivers.

 

Question about TimerTimeOut:

Its explained in the readme, but NOT in which case the kext uses more / less payload in microSec.

Which gives less payload , + or - ?(shown in the Control app by clicking in the info line)

Means that less XY microSec payload value is also less cpu usage of the kext ?

Link to comment
Share on other sites

I tried using the default kext on my Q6600 OC'ed with the BSEL Mod (it shorts a pin which makes the fsb force to 1333, instead of 1066) and it just defaults to 2.4 GHz max (actually 2.39)

 

Also, System Profiler Displays my fsb as 1.07 GHz, would that be a problem? Ifso, how can i fix it?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...