Jump to content
625 posts in this topic

Recommended Posts

by the way... it volts down to 1000 mV when I have all the pstates enabled. Let me know if you think its safer for me to limit the volts to 1050 mV. Thanks a heap

 

If it is stable there is no reason to change it. But if you have random issues or panics, then I would recommend to raise the voltage.

There is something strange. I uploaded a new version so if you run the debug version it provides a bit more output.

Try newest kext,

but this on AMD64 Turion lappie , for my AMD64 X2 3800 pc i'll try

 

TURION

GenericCPUPowerManagement: [Debug] Initialization : Start
GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.0 (Debug) Dec  1 2008 03:17:44 [1050]
GenericCPUPowerManagement: (C) 2008 Superhai, All Rights Reserved
GenericCPUPowerManagement: [Debug] P-State 0: 2200 MHz [0E-00] - 1225 mV [0D]
GenericCPUPowerManagement: [Debug] P-State 1: 2000 MHz [0C-00] - 1200 mV [0E]
GenericCPUPowerManagement: [Debug] P-State 2: 1800 MHz [0A-00] - 1150 mV [10]
GenericCPUPowerManagement: [Debug] P-State 3: 1600 MHz [08-00] - 1125 mV [11]
GenericCPUPowerManagement: [Debug] P-State 4: 1400 MHz [06-00] - 1075 mV [13]
GenericCPUPowerManagement: [Debug] P-State 5: 1200 MHz [04-00] - 1050 mV [14]
GenericCPUPowerManagement: [Debug] P-State 6: 1000 MHz [02-00] - 1000 mV [16]
GenericCPUPowerManagement: [Debug] P-State 7: 0800 MHz [00-00] - 0975 mV [17]
GenericCPUPowerManagement: [Debug] CPU 0: CTL 0000 TR 000
GenericCPUPowerManagement: [Debug] CPU 0 load 0685 highest P-State 7 (approximate) and frequency 800
GenericCPUPowerManagement: [Debug] AutoThrottle - from 7 to 6 - Requesting 0216
GenericCPUPowerManagement: [Debug] CPU 0 load 0116 highest P-State 7 (approximate) and frequency 800
GenericCPUPowerManagement: [Debug] Last loop used 24382 us
GenericCPUPowerManagement: [Debug] CPU 0 load 0137 highest P-State 7 (approximate) and frequency 800
ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "Status"
  "Status" = {"Threshold"=0xc8,"Profile"=0x0,"CPU"=({"Load"={"User"=0x40,"Accumulated"=0x5d,"System"=0x1d,"Idle"=0x3a1,"Nice"=0x0},"Thermal Readout"=0x0,"Frequency"=0x320,"Current P-State"=0x7,"DID"=0x0,"VID"=0x0,"FID"=0x0,"Voltage"=0x60e,"Exact"=No,"Name"="CPU0"}),"Timer Timeout (ms)"=0xfa,"P-State Limit"=0x0,"P-State Capability"=0x0,"Current Latency"=0x64,"Kernel Extension Ready"=Yes,"Hysteresis"=0x32,"Auto Throttle Running"=Yes}
ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "Characteristics"
  "Characteristics" = {"Voltage Highest"=0x4c9,"Signature"=0x40fc2,"CPU Count"=0x1,"Build Date"="Dec  1 2008","Constant TSC"=No,"Voltage Lowest"=0x3b6,"VID Lowest"=0x18,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.0","Individual Core Control"=No,"Frequency Lowest"=0x320,"DID Lowest"=0x0,"Timer Timeout"=0xfa,"CPU Driver"=0x1,"Mobile CPU"=No,"Build Time"="03:17:44","Auto Throttle On Startup"=Yes,"Build Config"="Debug","Frequency Highest"=0x898,"String"="AMD Turion(tm) 64 Mobile Technology MK-38","DID Highest"=0x0,"FID Lowest"=0x0,"VID Highest"=0xd,"FID Highest"=0xe,"P-State Count"=0x7}
hw.cpufrequency_max: 2200000000
hw.cpufrequency_min: 800000000
hw.cpufrequency: 800000000

 

Hope on AMD64 X2 3800 just like this Turion

Hope on AMD64 X2 3800 just like this Turion

 

try the newest downloaded kext today, but still no happy like Turion does

 

Here what happen on AMD64 X2 3800

 

GenericCPUPowerManagement: [Debug] Initialization : Probe

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

GenericCPUPowerManagement: [Debug] AMD PN 060C0C0C 12060808

GenericCPUPowerManagement: [Debug] CPU Hardware Driver Setup Complete

GenericCPUPowerManagement: [Debug] Initialization : Start

GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.0 (Debug) Dec 1 2008 03:17:44 [1050]

GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved

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

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

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

GenericCPUPowerManagement: [Debug] Last loop used 0 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0117 P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0122 highest P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] Last loop used 85 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0043 P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0045 highest P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] Last loop used 90 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0133 highest P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0053 P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] Last loop used 92 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0030 P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0060 highest P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] Last loop used 89 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0038 P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0040 highest P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] Last loop used 90 us

GenericCPUPowerManagement: [Debug] CPU 0 load 0193 P-State 0 (approximate) and frequency 800

GenericCPUPowerManagement: [Debug] CPU 1 load 0242 highest P-State 0 (approximate) and frequency 800

 

Still one P-State 0 point to 2000MHz at 1350mV

but straange everytime throttle requested to 800MHz as viewed from sysctl below

 

bash-3.2# sysctl -a | grep cpufreq

kern.exec: unknown type returned

hw.cpufrequency = 800000000

hw.cpufrequency_max: 2000000000

hw.cpufrequency_min: 2000000000

hw.cpufrequency: 800000000

 

and on ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "Status" output

"Status" = {"Threshold"=0x1f4,"Profile"=0x0,"CPU"=({"Load"={"User"=0x9,"Accumulated"=0x12,"System"=0x9,"Idle"=0x3ec,"Nice"=0x0},"Thermal Readout"=0x0,"Frequency"=0x320,"Current P-State"=0x0,"DID"=0x0,"VID"=0x0,"FID"=0x0,"Voltage"=0x60e,"Exact"=No,"Name"="CPU1"},{"Load"={"User"=0x1d,"Accumulated"=0x21,"System"=0x4,"Idle"=0x3dd,"Nice"=0x0},"Thermal Readout"=0x0,"Frequency"=0x320,"Current P-State"=0x0,"DID"=0x0,"VID"=0x0,"FID"=0x0,"Voltage"=0x60e,"Exact"=No,"Name"="CPU2"}),"Timer Timeout (ms)"=0xfa,"P-State Limit"=0x0,"P-State Capability"=0x0,"Current Latency"=0x64,"Kernel Extension Ready"=Yes,"Hysteresis"=0x64,"Auto Throttle Running"=Yes}

 

whenever ioreg -lxw0 -r -c GenericCPUPowerManagement | grep "Characteristics" output shows

"Characteristics" = {"Voltage Highest"=0x546,"Signature"=0x20fb1,"CPU Count"=0x2,"Build Date"="Dec 1 2008","Constant TSC"=No,"Voltage Lowest"=0x546,"VID Lowest"=0x8,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.0","Individual Core Control"=No,"Frequency Lowest"=0x7d0,"DID Lowest"=0x0,"Timer Timeout"=0xfa,"CPU Driver"=0x1,"Mobile CPU"=No,"Build Time"="03:17:44","Auto Throttle On Startup"=Yes,"Build Config"="Debug","Frequency Highest"=0x7d0,"String"="AMD Athlon 64 X2 Dual Core Processor 3800+","DID Highest"=0x0,"FID Lowest"=0xc,"VID Highest"=0x8,"FID Highest"=0xc,"P-State Count"=0x0}

 

highest and lowest voltage or frequency show same hex value and P-State Count = 0

 

Still wondering why on 1.1.0 p-state lists gone but on 1.0.20 it's correctly detected with max 6 states from 1000-1200-1400-1600-1800-2000 MHz, or it's because forced to use 800MHz which is under 1000MHz problem on AC mode at PC with AMD CNQ supported CPU.

 

now back to obsidianx amd acpicputhrottle kext

no offense all

 

thank you

As always: great work!!!!

 

Just sth. i don´t seem to get properly:

 

When starting the app, it says "tjmax = 100°C", which seemed quiet much to me. With this setting running both cores under full load my temps are around 66-67°C. Lowering "tjmax = 85°C" results in about 15 degrees less when running CPU stress test -> ±50 °C

 

Could somebody please clarify the relation between temps and tjmax ? I don´t quiet get it ...

 

Goron

As always: great work!!!!

 

Just sth. i don´t seem to get properly:

 

When starting the app, it says "tjmax = 100°C", which seemed quiet much to me. With this setting running both cores under full load my temps are around 66-67°C. Lowering "tjmax = 85°C" results in about 15 degrees less when running CPU stress test -> ±50 °C

 

Could somebody please clarify the relation between temps and tjmax ? I don´t quiet get it ...

 

Goron

 

Lowering that DIDNT lower the temp in real !!! It only changes the measurement delta !!!

tjmax is an BASE value for computing real temp.

You cant change real temp by chaning tjmax - you only wil get more/less real measurements of the temp.

Wrong tjmax value gives wrong measured temp - but the real temp of the cores stays same + will not change !

Your example shows that:

tjmax 100 > 85 , an diff of 15 gives an computed temp of excact 15 Degrees less

Would yoo change tjmax more, from 100 > 50, an diff of 50, computed temp (not the real!) will have 50 Degrees less - which would give an cpu temp below room temp - shows that is NOT REAL temp

Ok, but what are the actual REAL temperatures ?

 

edit:

 

So after some further testing: with new .kext+app AND lowering tjmax to 85°C i got this damn rig stable at 3.2 GHz which was impossible before ... I KNOW this is ridiculus and there is no dependance between the setting of max temp and actual temp, but: somehow, for some reason i don´t understand yet, it works.

 

The ONLY thing i changed is a BIOS update from 0906 to 1013 which shouldn´t resolve temperature measures, but add additional CPU code ...

 

Lowering that DIDNT lower the temp in real !!! It only changes the measurement delta !!!

tjmax is an BASE value for computing real temp.

You cant change real temp by chaning tjmax - you only wil get more/less real measurements of the temp.

Wrong tjmax value gives wrong measured temp - but the real temp of the cores stays same + will not change !

Your example shows that:

tjmax 100 > 85 , an diff of 15 gives an computed temp of excact 15 Degrees less

Would yoo change tjmax more, from 100 > 50, an diff of 50, computed temp (not the real!) will have 50 Degrees less - which would give an cpu temp below room temp - shows that is NOT REAL temp

GenericCPUPowerManagement: [Debug] AMD PN 060C0C0C 12060808

 

Here is the problem (this is the CPU FIDVID Status register). According to AMD your startup fid (lowest fid) is 0C which is the same as Max FID. Your CPU should support only two P-States (lowest and highest according to bit 61) I upload a fix now so the kext should find the two states. The freeze in former versions is because it tries the intermediate p-states that the cpu is not supporting.

 

 

 

Still wondering why on 1.1.0 p-state lists gone but on 1.0.20 it's correctly detected with max 6 states from 1000-1200-1400-1600-1800-2000 MHz, or it's because forced to use 800MHz which is under 1000MHz problem on AC mode at PC with AMD CNQ supported CPU.

 

The earlier version used a table based method for each cpu, but this kext calculates the states. You should not worry about the 800 MHz because the actual throttle routine is not implemented in this kext (due to the hangs that you and other experienced, but I think I have sorted out these issues now so during the week I hope this can be added properly)

 

Could somebody please clarify the relation between temps and tjmax ? I don´t quiet get it ...

 

To be short... the cpu core has a thermal diode with an ADC so you get a value from -127 to 0. 0 is calibrated to the point where the CPU is very close to failure level, this temperature is referenced to as TjMAX. Because of this by knowing TjMAX you effectively have the offset to the value from the diode.

 

Which means, how can I get the temperature? Simply by adding TjMAX to the thermal diode readout.

 

There are some issues with this however, 1. is the fact that the scale is not precisely following the celsius scale when it get further from the 0 value. 2. TjMAX is not known for desktop cpus, as Intel is not publishing that value. There are a few unofficial means to calculate and estimate it, but as this means reading MSR from the cpu which is not existing on all. And reading MSRs which is not existing result in so called GP# exception and on OSX those lead to a General Protection kernel panic. You can get around this by using tables as I used on the former kext version, but there are still issues because not all cpus are not documented properly from Intel, and therefore would cause uneccesary KP's. I try to get around this by using a special kext that traps the GP# but this is a bit of a issue as you make some other problems, so it will be seperated. You can also find TjMAX from a few Windows apps, but there are disagreement to wheter those provided are the correct ones.

 

For mobile CPU's you will find the TjMAX in Intel spec sheets (which also contains discrepancies...altough mostly correct)

All works OK with new app and 1.1 kext insted of kernel panic on shut down (always) with info about genericCPUpower kext.

 

my config: Aspie One 150, boot 132 Leo 10.5.5 +all updates; voodoo RC kernel. This problem occurs on Voodoo beta2 too. I have not problems with 1.0.20 kext. Some times I get panic but it's problem with AppleHDA.

Now there is my report.

One hour ago I took sources of the kext and application and compile its with XCode 3.1 gcc4.2.

I set release build and set maximum optimization including vectorization and SSSE3.

My CPU is C2D T8300 2,4GHz.

About 38 errors and 4 warning. Did overcome. Do you want to know details?

More problem with application

Picture_1.png

I don't know what to do. It doesn't work.

Picture_3.png

As well as previous version

Picture_2.png

 

The new GerenilCPUPowerManagement.kext works and show more symmetric load of two cores and XBench speed increase.

Version 1.0.6

	Quartz Graphics Test	123.97	
	Line	170.68	11.36 Klines/sec [50% alpha]
	Rectangle	68.62	20.49 Krects/sec [50% alpha]
	Circle	126.28	10.29 Kcircles/sec [50% alpha]
	Bezier	120.84	3.05 Kbeziers/sec [50% alpha]
	Text	269.99	16.89 Kchars/sec
OpenGL Graphics Test	23.74	
	Spinning Squares	23.74	30.11 frames/sec
User Interface Test	73.45	
	Elements	73.45	337.10 refresh/sec

Version 1.1.0

	Quartz Graphics Test	124.88	
	Line	169.18	11.26 Klines/sec [50% alpha]
	Rectangle	68.57	20.47 Krects/sec [50% alpha]
	Circle	125.97	10.27 Kcircles/sec [50% alpha]
	Bezier	122.48	3.09 Kbeziers/sec [50% alpha]
	Text	290.72	18.19 Kchars/sec
OpenGL Graphics Test	23.60	
	Spinning Squares	23.60	29.94 frames/sec
User Interface Test	208.25	
	Elements	208.25	955.77 refresh/sec

Till now the symmetry and performance is worse then IntelSpeedStep but near to him.

	Quartz Graphics Test	125.73	
	Line	172.75	11.50 Klines/sec [50% alpha]
	Rectangle	69.02	20.61 Krects/sec [50% alpha]
	Circle	126.39	10.30 Kcircles/sec [50% alpha]
	Bezier	123.20	3.11 Kbeziers/sec [50% alpha]
	Text	288.80	18.07 Kchars/sec
OpenGL Graphics Test	23.70	
	Spinning Squares	23.70	30.07 frames/sec
User Interface Test	233.12	
	Elements	233.12	1.07 Krefresh/sec

 

What else? CPU loading and temperature I check with MSR Tools

Picture_5.png

SUPERHAI:

Thanks for explaniation how your V 1.1 measures cpu load and compute Pstate step up/down (highest load of an Core is used, not the load average of all cores i guessed - for my understanding of your replay)

 

New Question:

I also (using old but solid V1.0.20) checked MSR with the MSR tool.

What me make ??? is, the voltages steps.

Your kexts (i think also 1.1) steps my cpu with 25 mV steppings (C2D E4400).

MSR Tool showed never values with 25 / 50/75 00 ending of Mvolts.

Only such with even endings and 16 mVolts stepping.

I also remember using mercurys kext there were also 16 mVolts steppings.

Can it be that my CPU needs 16 mV steps and the kext didnt allow that or set wrong mVolts, which BIOS or CPU takes but use neares fitting (16 mVolts step) ?

 

to SLICE:

Hello, nice to meet you here too !! :D

I often cant recompile an source, made for GCC 4.0 with GCC 4.2.

GCC 4.2 do some more optimisations, but the source must be much more to an standard (i dont know to which).

So source must be programmed "an different stile / more strict" i think.

Only very rare i could use GCC 4.2 compiler without errors.

Because of much * / + - perhaps the compiler option "RELAX Floting point" (fastmath) maybe give some minimal

benefit. But i think first the .kexts will be made complete + stable.

 

The 1.0.20 , i use allday is rock solid and very good for me (Intel C2D).

With new one 1.1 (until now) i am a bit unsure and i wait.

Now there is my report.

One hour ago I took sources of the kext and application and compile its with XCode 3.1 gcc4.2.

I set release build and set maximum optimization including vectorization and SSSE3.

My CPU is C2D T8300 2,4GHz.

About 38 errors and 4 warning. Did overcome. Do you want to know details?

 

The application source I have not uploaded yet, the one here is for the old kext. Also the latest fixes to the kext source is also not uploaded. Will do it this evening.

 

I love the new app and I love the icon..... let me repeat that... I love the icon..... thanks Superhai.....

 

The icon is not mine, so it will be temporary until I get time to create my own. But thanks anyway.

 

I also (using old but solid V1.0.20) checked MSR with the MSR tool.

What me make ??? is, the voltages steps.

Your kexts (i think also 1.1) steps my cpu with 25 mV steppings (C2D E4400).

MSR Tool showed never values with 25 / 50/75 00 ending of Mvolts.

Only such with even endings and 16 mVolts stepping.

I also remember using mercurys kext there were also 16 mVolts steppings.

Can it be that my CPU needs 16 mV steps and the kext didnt allow that or set wrong mVolts, which BIOS or CPU takes but use neares fitting (16 mVolts step) ?

 

16 mV is valid only for pentium m and celeron m cpus, and maybe older. For Pentium 4 I am not sure, but believe that is 12,5 as that matches with the voltage table for external vids. For core cpus the stepping is 12,5 mV. Anyway it is for display purposes, what counts is the vid values.

The application source I have not uploaded yet, the one here is for the old kext. Also the latest fixes to the kext source is also not uploaded. Will do it this evening.

The icon is not mine, so it will be temporary until I get time to create my own. But thanks anyway.

16 mV is valid only for pentium m and celeron m cpus, and maybe older. For Pentium 4 I am not sure, but believe that is 12,5 as that matches with the voltage table for external vids. For core cpus the stepping is 12,5 mV. Anyway it is for display purposes, what counts is the vid values.

 

Ah, you mean MSR Tool only shows wrong mVolts , because may use wrong step for comupting ( some MSR reg value * 16 , insted of 12,5 ) and displaying mVolts (target and actual are shown). ?

 

But now i checked your replay by starting (old) Controll app.

 

I now kextunload old V 1.0.20 and loaded (not changed anything in orig. .plist) newest one + newest Control app.

 

1. Voltage in Control App window shows 1212 mV over slider (not zouched slider) and 1200mV left side = Menü 1200 mV

Why are shown 1212 mV and 1200 mV. I gues 1212mV is target mVolts and 1200 ?!

How do you get to 1212 mV target mVolts ?

i dont have mVolts overwrite aktive and my board didnt give acpi Pstate/VIDS information to your app.

i believe good voltages are very important for no KP or freezes.

Situations like me (no ACPI Pstates / No VIDS from Board) gives an fixed mVolts of 1200 mV.

Thats enough for midd speed but may be very problematic for an longer full load at full speed, and very very problematic for OC systems, which is to less (may give KP / freezes). That users should put their own mVolts in the plist (+ overwrite) - maybe a reason why some people here (little group) may get KP / freezes , most not.

 

All screenshoots same load (V1.0.20: plist with mVolts settings, V.1.1 no mV settings)

Bild_108.jpg

Bild_109.jpg

Bild_110.jpg

The application source I have not uploaded yet, the one here is for the old kext. Also the latest fixes to the kext source is also not uploaded. Will do it this evening.

I can wait.

The kext obtained already works almost fine. Wait for application.

Problem with V11 :

(As i told before)

1.The new kext didnt step to slowest MHZ (autotrottling).

If i force with new controll app it works.

And it stays there until i higher cpu load .

Lowering cpu load again: not going to slowest MHZ

Below screenshoot shows that : near zero CPU load (sure not 20%!!) but didnt go to slowest MHZ (1596 MHZ).

 

2. I edited the VIDS mVolts min + max in the new kext, also overwrite yes

The result is much different to V1.0.20.

The max. shown in the control app is always 1212 mV, which is to less (i set 1325 mV, ist default also of my bios for that CPU)

The min set works better but also didnt match same min/max in V.1.0.20 , it is higher than with V 1.0,20 (which works perfekt) !!!

Why is the voltage result so differnet using same min/max values in V 1.0.20 and V 1.1 ((plist) )?

 

Please also look at screenshoot: green headline tells 1212:1212mV ?! - WRONG, didnt work

Bootom in red overwrite, left (actual) 1075 mV

 

Right V 1.0.20 ,old Control app : same min/max Mvolts (+ overwrite yes) give result shown - ist OK

 

Thanks

Bild_111.jpg

Bild_108.jpg

Superhai, Great app.

 

Not sure if this has been brought up in the 26 pages or not...

 

I'm using a Core2Duo E6600 2.4GHZ oc'd at 3GHZ.

 

Your app doesn't appear to be reading my temps properly like Temperature Monitor and MSR Tools have. Your app tells me my temps are about 45C Idle. In Temp Monitor I get about 30-32C Idle.

 

Just a heads up. Thanks!

 

-Stell

The last kext version loads successfully on my AMD Turion 64 MT-34 cpu. However, when loaded, it sets the cpu frequency to 800 Mhz (lowest p-state), remains at this value all the time, and application's controls don't work.

 

I'm using 10.5.5 with Voodoo RC1 kernel in 64bit mode.

 

Here are the ouptuts using the debug kext:

 

sudo dmesg | grep GenericCPUPowerManagement

GenericCPUPowerManagement: [Debug] Initialization : Probe
GenericCPUPowerManagement: [Debug] A/C Power Connected
GenericCPUPowerManagement: [Debug] Found 1 I/O Kit CPU's and 1 ACPI CPU's
GenericCPUPowerManagement: [Debug] AMD PN 080A000A 1E08160A
GenericCPUPowerManagement: [Debug] CPU Hardware Driver Setup Complete
GenericCPUPowerManagement: [Debug] Initialization : Start
GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.0 (Debug) Dec  2 2008 01:11:13 [1050]
GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved
GenericCPUPowerManagement: [Debug] P-State 0: 1800 MHz [0A-00] - 1300 mV [0A]
GenericCPUPowerManagement: [Debug] P-State 1: 1600 MHz [08-00] - 1250 mV [0C]
GenericCPUPowerManagement: [Debug] P-State 2: 1400 MHz [06-00] - 1200 mV [0E]
GenericCPUPowerManagement: [Debug] P-State 3: 1200 MHz [04-00] - 1125 mV [11]
GenericCPUPowerManagement: [Debug] P-State 4: 1000 MHz [02-00] - 1075 mV [13]
GenericCPUPowerManagement: [Debug] P-State 5: 0800 MHz [00-00] - 1000 mV [16]
GenericCPUPowerManagement: [Debug] CPU 0: CTL 0000 TR 000
GenericCPUPowerManagement: [Debug] Last loop used 0 us
GenericCPUPowerManagement: [Debug] CPU 0 load 0079 highest P-State 5 (approximate) and frequency 800
GenericCPUPowerManagement: [Debug] Last loop used 60 us
GenericCPUPowerManagement: [Debug] CPU 0 load 0098 highest P-State 5 (approximate) and frequency 800
GenericCPUPowerManagement: [Debug] Last loop used 69 us
GenericCPUPowerManagement: [Debug] CPU 0 load 0015 highest P-State 5 (approximate) and frequency 800

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

"Characteristics" = {"Voltage Highest"=0x514,"Signature"=0x20f42,"CPU Count"=0x1,"Build Date"="Dec  2 2008","Constant TSC"=No,"Voltage Lowest"=0x3e8,
"VID Lowest"=0x16,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.0","Individual Core Control"=No,"Frequency Lowest"=0x320,
"DID Lowest"=0x0,"Timer Timeout"=0xfa,"CPU Driver"=0x1,"Mobile CPU"=No,"Build Time"="01:11:13","Auto Throttle On Startup"=Yes,"Build Config"="Debug",
"Frequency Highest"=0x708,"String"="AMD Turion(tm) 64 Mobile Technology MT-34","DID Highest"=0x0,"FID Lowest"=0x0,"VID Highest"=0xa,"FID Highest"=0xa,
"P-State Count"=0x5} 

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

"Status" =  "Threshold"=0xc8,"Profile"=0x0,"CPU"=({"Load"={"User"=0xa,"Accumulated"=0xf,"System"=0x5,"Idle"=0x3f0,"Nice"=0x0},"Thermal Readout"=0x0,
"Frequency"=0x320,"Current P-State"=0x5,"DID"=0x0,"VID"=0x0,"FID"=0x0,"Voltage"=0x60e,"Exact"=No,"Name"="CPU0"}),"Timer Timeout (ms)"=0xfa,
"P-State Limit"=0x0,"P-State Capability"=0x0,"Current Latency"=0x64,"Kernel Extension Ready"=Yes,"Hysteresis"=0x32,"Auto Throttle Running"=Yes}

 

EDIT: Same issue also when using various other kernels in 32bit mode.

post-142969-1228256072_thumb.png

The last kext version loads successfully on my AMD Turion 64 MT-34 cpu. However, when loaded, it sets the cpu frequency to 800 Mhz (lowest p-state), remains at this value all the time, and application's controls don't work.

 

Yes, it will because I removed the actual throttle routine from the new kext as it is getting rewritten due to a few hangs it was causing. I should have fixed version ready soon. Right now it just returns nothing... Which means 00000. And fid of 00 means 800 MHz on AMD and vid of 00 is 1550 mV. That is not the actual running state of the cpu. So wait.... I hope to have out the first working version during this week.

 

Your app doesn't appear to be reading my temps properly like Temperature Monitor and MSR Tools have. Your app tells me my temps are about 45C Idle. In Temp Monitor I get about 30-32C

 

There is a change in the new kext and app, because I dont use table data anymore I cant detect the TjMAX, which have to be set in Preferences by the user.

 

Now the .kext auto throttles between 800MHz and 1,43 GHz instead of 1,933 GHz and 3,21 GHz. Also Application window is empty ... :)

 

If you having issues, please read the doc file or from first post, under the heading "if it is not working" and make a bug report as indicated. What you wrote here is not helpful for me. Sorry!

 

 

i'm having an issue with the app. it says the kext is loaded and working properly, but the application cannot detect it. im using a 1.7 GHz core 2 duo on an hp laptop. the kext and app are 1.1 . any ideas?

 

If you having issues, please read the doc file or from first post, under the heading "if it is not working" and make a bug report as indicated. What you wrote here is not helpful for me. Sorry!

 

 

Problem with V11 :

(As i told before)

1.The new kext didnt step to slowest MHZ (autotrottling).

If i force with new controll app it works.

And it stays there until i higher cpu load .

Lowering cpu load again: not going to slowest MHZ

Below screenshoot shows that : near zero CPU load (sure not 20%!!) but didnt go to slowest MHZ (1596 MHZ).

 

If you having issues, please read the doc file or from first post, under the heading "if it is not working" and make a bug report as indicated. What you wrote here is not helpful for me. Sorry!

 

 

Please also look at screenshoot: green headline tells 1212:1212mV ?! - WRONG, didnt work

Bootom in red overwrite, left (actual) 1075 mV

 

Some times I have discovered that the CPU is not responding properly to my probe routine. I try to find a good way to find the lowest possible VID, but for the moment because intel dont release docs for this, I have to rely on the probing. I think I have a solution for mobile cpus as they always start in the cpus lowest supported state. In worst case you can use the acpi control instead.

 

I can wait.

The kext obtained already works almost fine. Wait for application.

 

Ok uploaded newst source of app and kext.

here is my debug info:

 

"Characteristics" = {"Voltage Highest"=0x497,"Signature"=0x6f2,"CPU Count"=0x2,"Build Date"="Nov 26 2008","Constant TSC"=Yes,"Voltage Lowest"=0x471,"VID Lowest"=0x22,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.0","Individual Core Control"=No,"Frequency Lowest"=0x31f,"DID Lowest"=0x0,"Timer Timeout"=0xfa,"CPU Driver"=0x0,"Mobile CPU"=Yes,"Build Time"="02:46:19","Auto Throttle On Startup"=Yes,"Build Config"="Release","Frequency Highest"=0x6c4,"String"="Intel® Core2 CPU T5300 @ 1.73GHz","DID Highest"=0x0,"FID Lowest"=0x6,"VID Highest"=0x25,"FID Highest"=0xd,"P-State Count"=0x7}

85-190:~ cdgullo$

 

 

 

"Status" = {"Threshold"=0xc8,"Profile"=0x0,"CPU"=({"Load"={"User"=0x0,"Accumulated"=0x0,"System"=0x0,"Idle"=0x400,"Nice"=0x0},"Thermal Readout"=0x2e,"Frequency"=0x31f,"Current P-State"=0x7,"DID"=0x0,"VID"=0x22,"FID"=0x6,"Voltage"=0x471,"Exact"=Yes,"Name"="CPU0"},{"Load"={"User"=0x28,"Accumulated"=0x50,"System"=0x28,"Idle"=0x3ae,"Nice"=0x0},"Thermal Readout"=0x2e,"Frequency"=0x31f,"Current P-State"=0x7,"DID"=0x0,"VID"=0x22,"FID"=0x6,"Voltage"=0x471,"Exact"=Yes,"Name"="CPU1"}),"Timer Timeout (ms)"=0xfa,"P-State Limit"=0x0,"P-State Capability"=0x0,"Kernel Extension Ready"=Yes,"Hysteresis"=0x32,"Auto Throttle Running"=Yes}

85-190:~ cdgullo$

 

Dec 2 09:18:23 localhost kernel[0]: GenericCPUPowerManagement: [Warning] Your FSB is out of bounds, attempting to fix

Dec 2 09:18:23 localhost kernel[0]: GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.0 (Release) Nov 26 2008 02:46:19 [1050]

Dec 2 09:18:23 localhost kernel[0]: GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved

Dec 2 13:57:47 localhost kernel[0]: GenericCPUPowerManagement: [Warning] Your FSB is out of bounds, attempting to fix

Dec 2 13:57:47 localhost kernel[0]: GenericCPUPowerManagement: GenericCPUPowerManagement.kext 1.1.0 (Release) Nov 26 2008 02:46:19 [1050]

Dec 2 13:57:47 localhost kernel[0]: GenericCPUPowerManagement: © 2008 Superhai, All Rights Reserved

here is my debug info:

GenericCPUPowerManagement.kext 1.1.0 (Release) Nov 26 2008 02:46:19

 

You forgot to download the newest version of the kext. The app was supported from the 1.1.0 Nov 30 version.

 

New version 1.1.1 of kext.

Some times I have discovered that the CPU is not responding properly to my probe routine. I try to find a good way to find the lowest possible VID, but for the moment because intel dont release docs for this, I have to rely on the probing. I think I have a solution for mobile cpus as they always start in the cpus lowest supported state. In worst case you can use the acpi control instead.

Thanks for fast dev !

I will try it and report (if needed with debug information)

 

"Characteristics" = {"Voltage Highest"=0x52d,"Signature"=0x6f2,"CPU Count"=0x2,"Build Date"="Dec 3 2008","Constant TSC"=Yes,"Voltage Lowest"=0x52d,"VID Lowest"=0x28,"Product Name"="GenericCPUPowerManagement.kext","Override"=No,"Version"="1.1.1","Individual Core Control"=No,"Frequency Lowest"=0x63c,"DID Lowest"=0x0,"Timer Timeout"=0x15e,"CPU Driver"=0x0,"Mobile CPU"=No,"Build Time"="07:35:21","Auto Throttle On Startup"=Yes,"Build Config"="Debug","Frequency Highest"=0xa64,"String"="Intel® Core™2 CPU 4400 @ 2.00GHz","DID Highest"=0x0,"FID Lowest"=0x6,"VID Highest"=0x28,"FID Highest"=0xa,"P-State Count"=0x4}

bash-3.2#

"Status" = {"Threshold"=0x12c,"Wait Time TSC"=0x44b4ce96,"Profile"=0x0,"CPU"=({"Load"={"User"=0xf,"Accumulated"=0x19,"System"=0xa,"Idle"=0x3e6,"Nice"=0x0},"Clock Modulation"=0x400,"Frequency"=0x63c,"Current P-State"=0x4,"DID"=0x0,"VID"=0x28,"Thermal Readout"=0x44,"FID"=0x6,"Voltage"=0x52d,"Exact"=Yes,"Name"="CPU0"},{"Load"={"User"=0xe,"Accumulated"=0x17,"System"=0x9,"Idle"=0x3e7,"Nice"=0x0},"Clock Modulation"=0x400,"Frequency"=0x63c,"Current P-State"=0x4,"DID"=0x0,"VID"=0x28,"Thermal Readout"=0x44,"FID"=0x6,"Voltage"=0x52d,"Exact"=Yes,"Name"="CPU1"}),"Timer Timeout (ms)"=0x15e,"P-State Limit"=0x0,"P-State Capability"=0x0,"Current Latency"=0x6,"Kernel Extension Ready"=Yes,"Hysteresis"=0x32,"Auto Throttle Running"=Yes,"Routine Payload TSC"=0x4aaa6}

 

TEST1 : OVERWRITE NO , Result 1325:1325 mV displayed/used. Better than 1212:1212 last version

Debug] Initialization : Probe

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

[Warning] Your CPU supports constant TSC but only in C0 and C1, will attempt to disable C2+ states

[Debug] Minimum VID Probe

[Debug] Minimum VID Probe Complete : 28

[Debug] Intel 06000A28 0A280A28

[Debug] CPU Hardware Driver Setup Complete

[Debug] Initialization : Start

GenericCPUPowerManagement.kext 1.1.1 (Debug) Dec 3 2008 07:35:21 [1050]

© 2008 Superhai, All Rights Reserved

[Debug] P-State 0: 2660 MHz [0A-00] - 1325 mV [28]

[Debug] P-State 1: 2394 MHz [09-00] - 1325 mV [28]

[Debug] P-State 2: 2128 MHz [08-00] - 1325 mV [28]

[Debug] P-State 3: 1862 MHz [07-00] - 1325 mV [28]

[Debug] P-State 4: 1596 MHz [06-00] - 1325 mV [28]

[Debug] CPU 0: CTL 0A28 TR 064

[Debug] CPU 1: CTL 0A28 TR 065

[Debug] Last loop used 0 us

[Debug] CPU 0 load 0033 P-State 0 (exact) and frequency 2660

[Debug] CPU 1 load 0043 highest P-State 0 (exact) and frequency 2660

[Debug] AutoThrottle - from 0 to 4 - Requesting 0628

[Debug] Last loop used 106 us

[Debug] CPU 0 load 0023 highest P-State 0 (exact) and frequency 2660

[Debug] CPU 1 load 0020 P-State 0 (exact) and frequency 2660

[Debug] AutoThrottle - from 0 to 4 - Requesting 0628

bash-3.2# dmesg

enericCPUPowerManagement: [Debug] Last loop used 114 us

[Debug] CPU 0 load 0018 highest P-State 4 (exact) and frequency 1596

 

TEST 2: OVERWRITE yes, 925 mV , 1325 mV Result: SAME 1325:1325 :) , 925mV from overwrite isnt used!!! as min

[Debug] Initialization : Probe

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

[Warning] Your CPU supports constant TSC but only in C0 and C1, will attempt to disable C2+ states

[Debug] Minimum VID Probe

[Debug] Minimum VID Probe Complete : 28

[Debug] Intel 06320A28 0A280A28

[Debug] CPU Hardware Driver Setup Complete

[Debug] Initialization : Start

GenericCPUPowerManagement.kext 1.1.1 (Debug) Dec 3 2008 07:35:21 [1050]

© 2008 Superhai, All Rights Reserved

[Debug] P-State 0: 2660 MHz [0A-00] - 1325 mV [28]

[Debug] P-State 1: 2394 MHz [09-00] - 1325 mV [28]

[Debug] P-State 2: 2128 MHz [08-00] - 1325 mV [28]

[Debug] P-State 3: 1862 MHz [07-00] - 1325 mV [28]

[Debug] P-State 4: 1596 MHz [06-00] - 1325 mV [28]

[Debug] CPU 0: CTL 0A28 TR 065

[Debug] CPU 1: CTL 0A28 TR 066

[Debug] Last loop used 0 us

[Debug] CPU 0 load 0042 P-State 0 (exact) and frequency 2660

Does since V1.1 OVERWRITE VID work much different to V 1.0.20, because setting min/max work with 1.0.20,

but here i didnt get my Min even if i use OVERWRITE.

Any chance you add an FORCE_OW for users which are sure what the do :) ?

 

GOOD: :)

The newest 1.1.1 works now without the problem of v1.1 which wont go down to slowest MHZ.

It now stays also at my slowest 1596 MHZ if CPU load is less. Last version stays onyl at 1800 MHZ.THANKS

(Has it to do with new value Tstate is not set in AC (i only use AC, desktop) ?

K, so this is my output:

 

dmesg | grep GenericCPUPowerManagement

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/

sh-3.2#

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

sh-3.2#

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

"CPU Status" = {"Auto Throttle"=Yes,"Load"=0x26,"Temperature"=0x33,"Current profile"=0x0,"High jump"=0x12c,"Voltage"=0x41a,"Timer"=0xfa,"Low jump"=0x96,"Frequency"=0x786,"Kext Timer"=0x20f,"Kext Online"=Yes,"Current state"=0x3,"Voltage ID"=0x1d,"Frequency ID"=0x6}

sh-3.2#

sh-3.2# grep GenericCPUPowerManagement /var/log/system.log

Dec 2 21:00:19 localhost kernel[0]: GenericCPUPowerManagement: Generic CPU Power Management Driver 1.0 © 2008 Superhai Development Co, based on works by mercurysquad

Dec 2 21:00:19 localhost kernel[0]: GenericCPUPowerManagement: For internal use only. All Rights Reserved. Support and documentaion http://www.superhai.com/

Dec 3 08:40:09 Mac kernel[0]: GenericCPUPowerManagement: Generic CPU Power Management Driver 1.0 © 2008 Superhai Development Co, based on works by mercurysquad

Dec 3 08:40:09 Mac kernel[0]: GenericCPUPowerManagement: For internal use only. All Rights Reserved. Support and documentaion http://www.superhai.com/

sh-3.2#

 

Hope that helps a bit ...

 

 

Goron

hello,

 

i don't know what's going on but with the new kext (the previous ones up to 1.19 used to work just fine) my lappy freezes at booting, or boots and then freezes after just 2 seconds. when i remove the kext everything returns back to normal.

 

one time i was able to write down the message that showed up during booting i'm not sure if it has something to do with the freezing anomaly:

 

your cpu supports only constant TSC but only in C0 and C1 will attempt to disable C2+ ststes

 

if u need any more info let me know

 

pls help

Guest
This topic is now closed to further replies.
×
×
  • Create New...