Contribute
Register

[Guide] Native Power Management for Laptops

You can use freqVectors.sh from Pike to edit it....
Funny boy...

I decided to go for XCPM only and HWP. This is far more exciting.
Running GeekBench and IntelPowerGadget I found out that /tmp/AppleIntelInfo.dat gradually populates and the final result is the following:

Code:
CPU P-States [ (8) 24 33 ] iGPU P-States [ ]
CPU P-States [ 8 (17) 24 33 ] iGPU P-States [ ]
CPU P-States [ 8 (17) 24 25 33 ] iGPU P-States [ ]
CPU P-States [ 8 17 24 25 (27) 33 ] iGPU P-States [ ]
CPU P-States [ 8 17 24 25 27 (28) 33 ] iGPU P-States [ ]
CPU P-States [ 8 (9) 17 24 25 27 28 33 ] iGPU P-States [ ]
CPU P-States [ 8 9 (17) 24 25 27 28 33 ] iGPU P-States [ (21) ]
CPU P-States [ 8 9 17 (22) 24 25 27 28 33 ] iGPU P-States [ (21) ]
CPU P-States [ 8 9 17 22 24 25 27 28 (32) 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 17 22 24 25 27 28 (30) 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 17 22 24 25 27 28 30 (31) 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 17 22 24 25 (26) 27 28 30 31 32 33 ] iGPU P-States [ (21) ]
CPU P-States [ 8 9 17 22 24 25 26 27 28 (29) 30 31 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 (15) 17 22 24 25 26 27 28 29 30 31 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 (9) 15 17 22 24 25 26 27 28 29 30 31 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 15 17 22 24 25 26 27 28 29 30 (31) 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 15 17 22 24 25 26 (27) 28 29 30 31 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 15 17 22 24 25 26 27 28 29 30 (31) 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 15 17 22 24 25 26 27 28 29 30 (31) 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 (14) 15 17 22 24 25 26 27 28 29 30 31 32 33 ] iGPU P-States [ 21 ]
CPU P-States [ 8 9 (12) 14 15 17 22 24 25 26 27 28 29 30 31 32 33 ] iGPU P-States [ 21 ]

Geekbench results are: 4600/14599 on power adapter and 4354/12362 which outperform the same processor on CPU comparison. Time to disable IGPU.

Looking at the ASL messages I still have these messages
Code:
8 Jun 2017, 16:31:37 com.apple.xpc.launchd[1]: The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.
I got your latest config.plist for HD530 with the suggested KernelToPatch but to no avail.

config.plist and other files are the same as the ones I posted previously except for the SSDT-PluginType1.aml patch.
 
Last edited:
Funny boy...

I decided to go for XCPM only and HWP. This is far more exciting.

Unless there is already an exact match in the X86PlatformPlugin plist, FreqencyVectors (and editing) still plays a role with HWP.

Geekbench results are: 4600/14599 on power adapter and 4354/12362 which outperform the same processor on CPU comparison.

No idea what you mean by "outperform the same processor on CPU comparison."

Looking at the ASL messages I still have these messages
Code:
8 Jun 2017, 16:31:37 com.apple.xpc.launchd[1]: The HideUntilCheckIn property is an architectural performance issue. Please transition away from it.

Off-topic.

I got your latest config.plist for HD530 with the suggested KernelToPatch but to no avail.

No idea what you mean by "to no avail". You would likely have panic without the _xcpm_idle patch.
 
FreqencyVectors (and editing) still plays a role with HWP.
Well, I looked at freqVectors.sh and got scared. I will try to understand.
No idea what you mean by "outperform the same processor on CPU comparison."
After running GeekBench 4, when you compare the results with those of MacBook Pro 15" Late 2016 w/ Core [email protected], you see that my ASUS whith the same processor has much higher scores, very close to those of iMac 27" Retina w/ Corei7@4GHz, which is almost at the top of those charts.
Off-topic.
I misread. xcpm is not xpc.
 
After running GeekBench 4, when you compare the results with those of MacBook Pro 15" Late 2016 w/ Core [email protected], you see that my ASUS whith the same processor has much higher scores, very close to those of iMac 27" Retina w/ Corei7@4GHz, which is almost at the top of those charts.

The overall GeekBench score includes much more than just CPU result...
You would really need to look at individual CPU-only numbers.
 
Hi RehabMan,

I have followed the guide and managed to enable more PM states on my CPU. I am not sure if the results are beneficial yet.

I have an i7-6700T with base clock 2800MHz and turbo 3600MHz. When the computer is just idling, HWMonitor shows the CPU Package Frequency fluctuating between 800MHz and 4500MHz and also some ridiculous values such as 2143THz.

Is it possible that I did something wrong? Or is it HWMonitor not reading the values correctly? Idle temps are a few degrees warmer than before also.
 
Hi RehabMan,

I have followed the guide and managed to enable more PM states on my CPU. I am not sure if the results are beneficial yet.

I have an i7-6700T with base clock 2800MHz and turbo 3600MHz. When the computer is just idling, HWMonitor shows the CPU Package Frequency fluctuating between 800MHz and 4500MHz and also some ridiculous values such as 2143THz.

Is it possible that I did something wrong? Or is it HWMonitor not reading the values correctly? Idle temps are a few degrees warmer than before also.

No idea without "Problem Reporting" files.
Also, seems likely you have something installed that is using CPU cycles, which of course will cause pstate spikes...
 
Hi.
I am having a laptop with kabylake cpu, and I applied the "SSDT-PluginType1.aml" to patch. After that, I saw some changes appeared Energy Saver Panel. X86PlatformPlugin is loaded. However, AppleLPC still not enabled.
Btw, I've tried to enable AppleLPC by patching DSDT with [sys] Skylake LPC but an error appeared 12141, 6074, Name already exists in scope (_DSM). Please tell me which step I have gone wrong.
 

Attachments

  • Screenshot 2017-06-17_03-41-38.png
    Screenshot 2017-06-17_03-41-38.png
    66.2 KB · Views: 100
  • Screenshot 2017-06-17_03-42-33.png
    Screenshot 2017-06-17_03-42-33.png
    122.5 KB · Views: 97
  • Screenshot 2017-06-17_03-48-20.png
    Screenshot 2017-06-17_03-48-20.png
    133.3 KB · Views: 96
  • DSDT.dsl
    922.2 KB · Views: 120
Hi.
I am having a laptop with kabylake cpu, and I applied the "SSDT-PluginType1.aml" to patch. After that, I saw some changes appeared Energy Saver Panel. X86PlatformPlugin is loaded. However, AppleLPC still not enabled.
Btw, I've tried to enable AppleLPC by patching DSDT with [sys] Skylake LPC but an error appeared 12141, 6074, Name already exists in scope (_DSM). Please tell me which step I have gone wrong.

SSDT-PluginType1.aml has nothing to do with AppleLPC.
You probably do not need AppleLPC, but that is off-topic here as it is an ACPI patching task...
You should read the ACPI patching guide carefully, it is obvious you missed a critical step regarding _DSM methods.
 
Hi. I've followed the XCPM and HWP method and successfully enable HWP. But when it woke from sleep, HWP is disabled unless I restarted it. How can I solve this problem, thanks in advance.

Code:
Last login: Tue Jun 20 02:05:36 on ttys000
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y acpiplat
   13    2 0xffffff7f82837000 0x60000    0x60000    com.apple.driver.AppleACPIPlatform (5.0) 867C81BE-EA01-3A65-89F4-06D78E6514CA <12 11 7 6 5 4 3 1>
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y appleintelcpu
   25    0 0xffffff7f82453000 0x2b000    0x2b000    com.apple.driver.AppleIntelCPUPowerManagement (219.0.0) 9E383328-0713-3AD3-BC4A-3A2A5646FEE5 <7 6 5 4 3 1>
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y applelpc
  102    0 0xffffff7f81fd6000 0x3000     0x3000     com.apple.driver.AppleLPC (3.1) F51595F0-F9B1-3B85-A1C3-F984DAD4107E <100 12 5 4 3>
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y applehda
  106    1 0xffffff7f824f8000 0x1d000    0x1d000    com.apple.driver.AppleHDAController (278.56) CFB0D0AE-F09A-3660-8F95-7A02FD5FBF07 <105 104 79 12 7 6 5 4 3 1>
  125    0 0xffffff7f8267a000 0xb4000    0xb4000    com.apple.driver.AppleHDA (278.56) A4EB06C9-A40A-39EF-9C4A-D7F23DB9A2F9 <124 106 105 104 84 79 6 5 4 3 1>

Code:
Last login: Tue Jun 20 02:14:19 on ttys000
TongChunYips-iMac:~ tongchunyip$
TongChunYips-iMac:~ tongchunyip$ sudo touch /System/Library/Extensions && sudo kextcache -u /
Password:
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext IntelBacklight.kext
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext
KernelCache ID: F879A83D7D83CCFA8FA9600D9CA740E7
symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>
 

Attachments

  • CLOVER_IOREG.zip
    5.2 MB · Views: 78
Hi. I've followed the XCPM and HWP method and successfully enable HWP. But when it woke from sleep, HWP is disabled unless I restarted it. How can I solve this problem, thanks in advance.

Code:
Last login: Tue Jun 20 02:05:36 on ttys000
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y acpiplat
   13    2 0xffffff7f82837000 0x60000    0x60000    com.apple.driver.AppleACPIPlatform (5.0) 867C81BE-EA01-3A65-89F4-06D78E6514CA <12 11 7 6 5 4 3 1>
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y appleintelcpu
   25    0 0xffffff7f82453000 0x2b000    0x2b000    com.apple.driver.AppleIntelCPUPowerManagement (219.0.0) 9E383328-0713-3AD3-BC4A-3A2A5646FEE5 <7 6 5 4 3 1>
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y applelpc
  102    0 0xffffff7f81fd6000 0x3000     0x3000     com.apple.driver.AppleLPC (3.1) F51595F0-F9B1-3B85-A1C3-F984DAD4107E <100 12 5 4 3>
TongChunYips-iMac:~ tongchunyip$ kextstat|grep -y applehda
  106    1 0xffffff7f824f8000 0x1d000    0x1d000    com.apple.driver.AppleHDAController (278.56) CFB0D0AE-F09A-3660-8F95-7A02FD5FBF07 <105 104 79 12 7 6 5 4 3 1>
  125    0 0xffffff7f8267a000 0xb4000    0xb4000    com.apple.driver.AppleHDA (278.56) A4EB06C9-A40A-39EF-9C4A-D7F23DB9A2F9 <124 106 105 104 84 79 6 5 4 3 1>

Code:
Last login: Tue Jun 20 02:14:19 on ttys000
TongChunYips-iMac:~ tongchunyip$
TongChunYips-iMac:~ tongchunyip$ sudo touch /System/Library/Extensions && sudo kextcache -u /
Password:
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext IntelBacklight.kext
kext-dev-mode allowing invalid signature -67013 0xFFFFFFFFFFFEFA3B for kext AppleMobileDevice.kext
KernelCache ID: F879A83D7D83CCFA8FA9600D9CA740E7
symlink("/System/Library/PrelinkedKernels/prelinkedkernel", "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache") failed 17 (File exists) <createPrelinkedKernel 2795>

You did not implement HWP correctly.
iMac17,1 is not enabled for HWP.
To enable HWP correctly, you must use an SMBIOS that is enabled for HWP or patch the X86PlatformPlugin plist.

Tip: Remove HPW related settings in your config.plist... they are worthless.
 
Back
Top