Jump to content

VoodooPower 1.2.3


Superhai
 Share

VoodooPower User Survey  

736 members have voted

  1. 1. Which CPU do you use this on?

    • Intel Pentium M
      29
    • Intel Pentium 4/D
      40
    • Intel Core (2) Solo/Duo/Quad
      464
    • Intel Atom
      100
    • AMD K8
      31
    • AMD K10
      22
    • Intel I7 or newer
      19
    • AMD K11 or newer
      11
    • Other
      20
  2. 2. Does it work successfully?

    • Yes, no issues
      363
    • Yes, minor issues/annoyances
      237
    • No, Intel Pentium M/4/D
      20
    • No, Intel Core or newer
      58
    • No, AMD K8
      22
    • No, AMD K10 or newer
      15
    • No, other CPU
      21
  3. 3. How do you rate the usefullness of VoodooPower?

    • No use
      105
    • Poor
      32
    • Mediocre
      54
    • Useful
      193
    • Very useful
      273
    • My life depend on it
      79


351 posts in this topic

Recommended Posts

@Hnak, I've tested your patched version and it loads fine, shows correct info, even temp works, but it slows down the system too much and I can't manualy throttle the cpu.

These messages appears on my console:

16/02/09 01:18:44 kernel VoodooPower.kext: [Debug] [00179] FSB = 222000000

16/02/09 01:18:44 kernel VoodooPower.kext: [Debug] [00199] CPU: AMD - Signature 20ff2 (AuthenticAMD)(AMD Athlon 64 Processor 3000+)

16/02/09 01:18:44 kernel VoodooPower.kext: [Debug] [00283] HW_PSTATE = 0, CONST_TSC= 0

16/02/09 01:18:44 kernel VoodooPower.kext: VoodooPower.kext 1.2.2 (Debug) Feb 14 2009 10:07:15 [1050]

16/02/09 01:18:45 kernel VoodooPower.kext: © 2008 Superhai, All Rights Reserved

16/02/09 01:18:45 kernel VoodooPower.kext: [Debug] [00322] P-State 0: FID-0A DID-00 VID-26 (00)

16/02/09 01:18:45 kernel VoodooPower.kext: [Debug] [00322] P-State 1: FID-02 DID-00 VID-32 (01)

16/02/09 01:19:32 kernel [MSR] detected invalid wrmsr(c0010041, 00000001:0001260a) by com.superhai.driver.VoodooPower at 0x2acd46d8

16/02/09 01:19:32 kernel VoodooPower.kext: [Debug] [00817] vid trans failed, vid 26, curr 8

16/02/09 01:19:32 kernel VoodooPower.kext: [Debug] [00688] Unable to step cpu correctly. Current 0A08 requested 0A26

16/02/09 01:19:32 kernel VoodooPower.kext: [Debug] [00703] CPU 0: Frequency 1800000000 (10) Voltage 1350 (8)

16/02/09 01:19:37 kernel VoodooPower.kext: [Debug] [00518] CPU 0 Load: USR 58 SYS 50 IDL 918 NCE 0

16/02/09 01:19:37 kernel VoodooPower.kext: [Debug] [00520] CPU 0 Total ticks 513 Ticks Per Loop 512

 

My CPU: Athlon64 3000+ @2000Mhz (when kext is loaded it takes it down to 1800Mhz, it's original clock)

 

[begging]: Could it be possible to load this to get just temp info, with no throttling. That would be a dream come true. [/begging]

 

Thanks for your efforts and, of course, thank you Superhai!

Link to comment
Share on other sites

I'll check your new driver shortly and will update you on the results.

 

Well, the new drivers seem to load file, although vpower always reports a frequency of 0 Mhz, whereas the core Voltage switches between 800 and 1100 (:

 

As I got some work to do now, I'll check the driver myself later and will post the results.

Link to comment
Share on other sites

Turion X2 Ultra seems to be K11. I hope this one shows closer values (2.2 G/1.1G/550 MHz).

As I do not have K11, I cannot check the behavior.

 

The archive contains VoodooPower.cpp, which you can build kext by replacing the corresponding original source file.

 

Hello hnak!

 

How do I replace VoodooPower.cpp, i cannot find the .cpp file in the VodooPower.kext?

Link to comment
Share on other sites

Hello hnak!

 

How do I replace VoodooPower.cpp, i cannot find the .cpp file in the VodooPower.kext?

1. Make sure you install Apple's development tool (xcode).

2. Go to www.superhai.com.

3. Follow the link to get the source files using subversion from Google code repository.

4. Then you will have project folders of 3 projects.

5. Locate VoodooPower project folder and replace VoodooPower.cpp.

6. Open VoodooPower.xcodeproject and build!

 

@Hnak, I've tested your patched version and it loads fine, shows correct info, even temp works, but it slows down the system too much and I can't manualy throttle the cpu.

These messages appears on my console:

16/02/09 01:18:44 kernel VoodooPower.kext: [Debug] [00179] FSB = 222000000

16/02/09 01:18:44 kernel VoodooPower.kext: [Debug] [00199] CPU: AMD - Signature 20ff2 (AuthenticAMD)(AMD Athlon™ 64 Processor 3000+)

16/02/09 01:18:44 kernel VoodooPower.kext: [Debug] [00283] HW_PSTATE = 0, CONST_TSC= 0

16/02/09 01:18:44 kernel VoodooPower.kext: VoodooPower.kext 1.2.2 (Debug) Feb 14 2009 10:07:15 [1050]

16/02/09 01:18:45 kernel VoodooPower.kext: © 2008 Superhai, All Rights Reserved

16/02/09 01:18:45 kernel VoodooPower.kext: [Debug] [00322] P-State 0: FID-0A DID-00 VID-26 (00)

16/02/09 01:18:45 kernel VoodooPower.kext: [Debug] [00322] P-State 1: FID-02 DID-00 VID-32 (01)

....

 

[begging]: Could it be possible to load this to get just temp info, with no throttling. That would be a dream come true. [/begging]

 

Thanks for your efforts and, of course, thank you Superhai!

As pstate0:fid = 0x0a, you look like tweaking multiplier. I'll take a look if I can get overclocked Pstate0 at initial state.

For now, if you modify VoodooPower.cpp's AMDPowerNowWrite() to do nothing and build ( with superhai's source ), you will get what you want.

Link to comment
Share on other sites

OK hnak, thank you

 

The kext works, my cpu fan runs quietly but i have the same problem as eMatoS, it slows down my system.

 

Messages in console : (dont know if they are related to this, i dont get anything else in console)

2/16/09 1:42:14 PM System Profiler[120] sysctl machdep.cpu.core_count errno = 2, trying machdep.cpu.cores_per_package

 

2/16/09 1:42:14 PM System Profiler[120] sysctl machdep.cpu.core_count errno = 2, trying machdep.cpu.cores_per_package

 

My CPU : AMD X2 6000+, maybe i have this problem because System Profiler identifies my processor as Intel Core Duo?

Link to comment
Share on other sites

[begging]: Could it be possible to load this to get just temp info, with no throttling. That would be a dream come true. [/begging]

 

Thanks for your efforts and, of course, thank you Superhai!

 

eMatoS,

 

attached to this post is a quick-n-dirty hack of hnak's VoodooPower extension, that will not perform any clock speed changes, but will report the temperature through superhais vpower. As the readouts of vpower are "0 - reported temperature" these values will be <0, but they reflect the current temperature anyways.

 

so long

NoJ

VoodooPower_AMD_Only_Temp.zip

Link to comment
Share on other sites

Well, the new drivers seem to load file, although vpower always reports a frequency of 0 Mhz, whereas the core Voltage switches between 800 and 1100 (:

 

As I got some work to do now, I'll check the driver myself later and will post the results.

This is AMD patch over VoodooPower 1.2.3. Reporting Frequency=0 is also fixed.

I also added a code to get current fid/vid in initial state and use the values if they are higher than P0 ( for multiplier tweaking case ), but not sure if it really works.

 

Notes about temperature:

The value of thermal sensor is Celcius in K8, but some ambiguous relative value in K10.

It is also unsure that the value shown by vpower is correct in AMD case, as it assumes the value is returned by Intel CPU. I will check the code later.

---

newer code in #178

Link to comment
Share on other sites

hnak, when I load the kext the system is sometimes slower and sometimes faster, and pauses every 5 seconds or so. Also I can't increase the frequency, it's stucked at 1800Mhz.

Temp seems quite accurate and I'll check vpower with the bios but I think it's correct (1350)

16/02/09 18:02:58 kernel VoodooPower.kext: [Debug] [00183] FSB = 233000000 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00203] CPU: AMD - Signature 20ff2 (AuthenticAMD)(AMD Athlon(tm) 64 Processor 3000+) 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00315] HW_PSTATE = 0, CONST_TSC= 0 
16/02/09 18:02:59 kernel VoodooPower.kext: VoodooPower.kext 1.2.3 (Debug) Feb 16 2009 23:22:02 [1050] 
16/02/09 18:02:59 kernel VoodooPower.kext: (C) 2008 Superhai, All Rights Reserved 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00354] P-State  0: FID-0A DID-00 VID-26 (00) 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00354] P-State  1: FID-02 DID-00 VID-32 (01) 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00552] CPU 0 Total ticks 286281 Ticks Per Loop 512 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00604] Auto Request: CPU 0 From state 0 to 1, throttle 0% 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00606] Limits: CPU 0 0 1 
16/02/09 18:02:59 kernel [MSR] detected invalid wrmsr(c0010041, 00000001:00013202) by com.superhai.driver.VoodooPower at 0x2af1b6d8 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00860] vid trans failed, vid 32, curr 8 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00720] Unable to step cpu correctly. Current 0208 requested 0232 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00735] CPU 0: Frequency 1000000000 (2) Voltage 1350 (8) 
16/02/09 18:03:04 kernel VoodooPower.kext: [Debug] [00550] CPU 0 Load: USR  152 SYS   92 IDL  780 NCE	0 
16/02/09 18:03:04 kernel VoodooPower.kext: [Debug] [00552] CPU 0 Total ticks 512 Ticks Per Loop 512 
16/02/09 18:03:04 kernel VoodooPower.kext: [Debug] [00604] Auto Request: CPU 0 From state 1 to 1, throttle 0% 
16/02/09 18:03:04 kernel VoodooPower.kext: [Debug] [00606] Limits: CPU 0 0 1 
16/02/09 18:03:04 kernel [MSR] detected invalid wrmsr(c0010041, 00000001:00013202) by com.superhai.driver.VoodooPower at 0x2af1b6d8

 

Also NoJr0xx, your kext makes the same slowdown as the complete one, but it shouldn't right? There must be something wrong here, I'll set all values in the bios to auto and see if that helps.

Link to comment
Share on other sites

hnak, when I load the kext the system is sometimes slower and sometimes faster, and pauses every 5 seconds or so. Also I can't increase the frequency, it's stucked at 1800Mhz.

Temp seems quite accurate and I'll check vpower with the bios but I think it's correct (1350)

16/02/09 18:02:58 kernel VoodooPower.kext: [Debug] [00183] FSB = 233000000 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00203] CPU: AMD - Signature 20ff2 (AuthenticAMD)(AMD Athlon(tm) 64 Processor 3000+) 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00315] HW_PSTATE = 0, CONST_TSC= 0 
...
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00354] P-State  0: FID-0A DID-00 VID-26 (00) 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00354] P-State  1: FID-02 DID-00 VID-32 (01) 
...
16/02/09 18:02:59 kernel [MSR] detected invalid wrmsr(c0010041, 00000001:00013202) by com.superhai.driver.VoodooPower at 0x2af1b6d8 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00860] vid trans failed, vid 32, curr 8 
16/02/09 18:02:59 kernel VoodooPower.kext: [Debug] [00720] Unable to step cpu correctly. Current 0208 requested 0232 
...

 

Also NoJr0xx, your kext makes the same slowdown as the complete one, but it shouldn't right? There must be something wrong here, I'll set all values in the bios to auto and see if that helps.

It fails in writing CPU control register c0010041. It is the register to write/read frequency and voltage settings. It may be the reason the kext is not working or pause. Your base clock modification might cause the problem.

 

The kext calculates frequency from fid using the formula: frequency = 800 + fid * 100. As the fid of p-state 0 = 10, it thinks the frequency = 1.8 GHz. It does not (yet) account for the base clock acceleration you made. So, even it works properly, it shows 1.8 GHz anyway.

Link to comment
Share on other sites

hnak, I've tested it with stock fsb and multiplier (all auto) but I get the same pauses. Any idea??

Feb 16 19:36:30 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00179] FSB = 200000000
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00199] CPU: AMD - Signature 20ff2 (AuthenticAMD)(AMD Athlon(tm) 64 Processor 3000+)
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00283] HW_PSTATE = 0, CONST_TSC= 0
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: VoodooPower.kext 1.2.3 (Debug) Feb 16 2009 14:04:18 [1050]
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: (C) 2008 Superhai, All Rights Reserved
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00322] P-State  0: FID-0A DID-00 VID-26 (00)
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00322] P-State  1: FID-02 DID-00 VID-32 (01)
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00520] CPU 0 Total ticks 41285 Ticks Per Loop 512
Feb 16 19:36:31 53-67-231-201 kernel[0]: [MSR] detected invalid wrmsr(c0010041, 00000001:0001260a) by com.superhai.driver.VoodooPower at 0x2a3f56d8
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00818] vid trans failed, vid 26, curr 6
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00689] Unable to step cpu correctly. Current 0A06 requested 0A26
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00704] CPU 0: Frequency 1800000000 (10) Voltage 1400 (6)
Feb 16 19:36:36 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00518] CPU 0 Load: USR   92 SYS   82 IDL  850 NCE	0
Feb 16 19:36:36 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00520] CPU 0 Total ticks 512 Ticks Per Loop 512

Link to comment
Share on other sites

hnak, I've tested it with stock fsb and multiplier (all auto) but I get the same pauses. Any idea??

Feb 16 19:36:30 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00179] FSB = 200000000
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00199] CPU: AMD - Signature 20ff2 (AuthenticAMD)(AMD Athlon(tm) 64 Processor 3000+)
...
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00322] P-State  0: FID-0A DID-00 VID-26 (00)
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00322] P-State  1: FID-02 DID-00 VID-32 (01)
Feb 16 19:36:31 53-67-231-201 kernel[0]: VoodooPower.kext: [Debug] [00520] CPU 0 Total ticks 41285 Ticks Per Loop 512
Feb 16 19:36:31 53-67-231-201 kernel[0]: [MSR] detected invalid wrmsr(c0010041, 00000001:0001260a) by com.superhai.driver.VoodooPower at 0x2a3f56d8

I need to consult AMD developer documentation about wrmsr() failure. It will take some time.

 

Is your processor is Athlon 64 socket 939 (or 754) ?

As I am not running OSX86 on pre-AM2 processor, I have no way to test the behavior now.

I will try to install OSX86 on my old socket 939 PC if I have time this weekend. Which distribution are you using ?

Link to comment
Share on other sites

I need to consult AMD developer documentation about wrmsr() failure. It will take some time.

 

Do not bother, I can tell you what is wrong. The VID value is insane. It tries to set a voltage of 600 mV, which the cpu obviously rejects. P-State 0 should have VID of 0x8 (1350 mV) or 0x6 (1400 mV), and P-State 1 should have VID 0x12 (1100 mV) on that CPU.

Link to comment
Share on other sites

Do not bother, I can tell you what is wrong. The VID value is insane. It tries to set a voltage of 600 mV, which the cpu obviously rejects. P-State 0 should have VID of 0x8 (1350 mV) or 0x6 (1400 mV), and P-State 1 should have VID 0x12 (1100 mV) on that CPU.

Humm.. ACPI_PSS seems to be broken (or not supported). The original Linux driver fetches the values from PSB BIOS in case ACPI_PSS method fails.

Need to read physical BIOS memory address.

 

Is there any way to disable the debug messages during startup?

Build Release version from source.

Link to comment
Share on other sites

AMD K8 pre-AM2 kext

 

I installed iPC 10.5.6 on my ASUS A8N5-X (Socket 939) and found that ACPI_PSS control does not have vid as indicated in AMD BIOS kernel developer's guide. However, ACPI_PSS state has fid and vid ( at least in my case ).

Then I changed my patch to fetch the values from state rather than control. The code did not show wrmsr error and throttled frequency/voltage. The same code works also on my AM2 MB (Gigabyte GA-MA69G-S3H).

 

Of cource, the situation may be different among MBs.

 

I also found the occasional short time freeze is actually caused by Debug message. So build and use the Release version if Socket 939/754 user gives a try. I upload the source code only here (need to get the project files from www.superhai.com ).

 

Warning: If USB audio is active, you will get lots of dmesgs from AppleUSBAudio as TSC changes according to frequency. I experienced occasional kernel panic with TSC adjusting code ( and removed it).

 

----

newer code in #178

Link to comment
Share on other sites

Doesn't work with E8200 either. It is supposed to show 2670 MHz under heavy load not minus 1630. The other step (only two) is 1998 MHz. :unsure:

 

Edit: Just found out about a third speed step -1963 MHz

 

GenericCPUPMControl.app is deprecated and not supported anymore.

Link to comment
Share on other sites

I don't know what to do with that, how can I compile the kext?, sorry but I tried to read about that and can't figure it out.

You need to install Xcode first. Then use subversion to get the project files from superhai's google code. After that, replace VoodooPower.cpp and build the project.

 

Anyway, I upload Release binary here. It contains a small utility named pstate (which requires this kext installed).

pstate without argument shows current state/voltage/frequency/temperature (temperature value may be bogus).

"pstate a" turns auto throttle on.

"pstate 0 (1,2...)" turns auto throttle off and change the p-state to specified value. Of source, p-state is limited by ACPI table count.

VoodooPowerAMD.zip

Link to comment
Share on other sites

 Share

×
×
  • Create New...