Hey Xavi, I hope you are well. I have been thinking about this for a few days. My system is running great now. I got two SATA ports working as hot swappable. All USB is working and my GeekBench 3 score is about 21400 which I am happy with. Also the output from my Intel Power Gadget when I run GeekBench flat-lines at peak load, which in my case is 3.4GHz. Although when I make my SSDT, Turbo comes out at 3.6GHz.
BUT.... I am now convinced that my power management is not right. I thought this was the case since I started this build and I agree with you that there is more that can be done. The fact that my system cannot reach 3.6GHz (turbo) and I only have about eighteen P-states tell me that things aren't quite right. So... here are my thoughts:
1. Firstly, many posted outputs I have seen show Intel Power Gadget with a sustained peak output which is NOT at all smooth. At peak performance, Intel Power Gadget should ideally be FLAT (a horizontal straight line). The objective of power management is to make available to the system, as many processor speeds as possible and to ensure that any chosen speed, if sustained, remains as constant possible.
2. Just using NullCPUPowerManagement.kext can achieve this but it is NOT the answer. This was my situation.
3. I think that the System Model Definition is
VERY important. I am using MacPro6.1 with a 5820k processor and I think that this combination together with NullCPUPowerMangement.kext gives me very limited P-states when I run
ssdtPRGen.sh. I know now that
ssdtPRGen.sh should not be run with NullCPUPowerManagement.kext loaded.
4. So why not just ditch NullCPUPowerMangement.kext? A good question. The answer is simple; my system will not boot without it. It panics too quickly for me to see why it does that.
POSSIBLE SOLUTIONS
To initially install with a model definition that supports my processor better. The best one I can think of is iMac15.1 as it has a Haswell processor. This will give me the proper frequency vectors that I need and with this definition, I might be able to do without NullCPUPowerMangement.kext which will allow me to run
Piker Alpha's ssdtPRGen.sh script with more confidence. Now I should end up with a much better SSDT file for my processor.
I think I will then have to edit X86PlatformPlugIn.kext so that everything MacPro6.1 is replaced with iMac15.1 data.
Once that is done, I can switch my model definition to MacPro6.1.
So far, that is all theory. I am not sure if it will work or even if I am barking up the right tree.
My Config.Plist file currently has 'KernelHaswellE' and '-xcpm' checked and I use FakeCPUID set to 0x0306E0 (so my system thinks it has an Ivy Bridge processor). I now know that KernelHaswellE restricts power management. So... I think that if I do the above, perhaps (hopefully) none of this will be necessary.
I did try obtaining a SSDT with boot flags for iMac15.2 but this did not work as I still had NullCPUPowerManagement.kext loaded and perhaps my Config.Plist settings are messing things up, anyway.
Also, I have seen some posts of people doing this and their Intel Power Gadget outputs still continue to show very erratic sustained peak performance. Not a flat horizontal line as what is desired.
The only thing I really need to resolve is doing away with NullCPUPowerManagement.kext.