Contribute
Register

[Guide] Native Power Management for Laptops

I just went back and checked and when idle, MacBook 9,1 power consumption is the same as MacBook11,1 but with a higher idle frequency. So I guess that's a good thing?

I also noticed kernel_task is around 6% CPU when idle whereas before it'd be around 8%.
 
I just went back and checked and with MacBook 9,1 power consumption is the same as MacBook11,1 but with a higher idle frequency. So I think that's actually better than before, no?

Your AppleIntelInfo shows idling at lower than x12. If you spend more time above that, then it means there is CPU demand that the HWP feature inside the CPU determines a higher multiplier is needed.
The only way to have reduced multiplier would be to change the HWP configuration (HWP is configured via the plist inside X86PlatformPlugin) or to reduce CPU demand.
 
or to reduce CPU demand.

Yeah I think I need to figure out why kernel_task shows up at all in top. I have a dell e7470 at work where it's always at 0%, but in my Asus it's around 6%. It doesn't do that in single user mode so I must have some dodgy driver/process doing something.
 

Yeah I think I need to figure out why kernel_task shows up at all in top. I have a dell e7470 at work where it's always at 0%, but in my Asus it's around 6%. It doesn't do that in single user mode so I must have some dodgy driver/process doing something.

Probably related to the I2C kext (because it is probably polling the I2C bus for input, instead of using interrupts).
I think the newer I2C will use interrupts, so may be more efficient.
 
Probably related to the I2C kext (because it is probably polling the I2C bus for input, instead of using interrupts).
I think the newer I2C will use interrupts, so may be more efficient.
You are correct. I unloaded VoodooI2C (hooray for proper unloading support, I expected the computer to freeze) and kernel_task went down to 2%. I can't wait for the new version to come out (they've been hyping it for a while now). Idle frequency didn't go down though – still 1.2Ghz. Must be something else then? I'll have to look around.

I also noticed while running Geekbench again that the CPU won't TurboBoost all the way up to 2Ghz (as advertised by Intel). If anything, it will go from 1.2Ghz to 1.5Ghz for a second or two, then back down to 1.2. Is this expected? Perhaps Apple tweaked their FrequencyVectors so the MacBook wouldn't get too hot?

EDIT: it TurboBoosts alright. Not sure why GeekBench wasn't pushing it, but I ran higan (accurate, CPU-heavy Super Nintendo emulator) and it reached 2Ghz. In fact it's better than before, with MacBook11,1 I wasn't getting 60 FPS so gameplay was choppy. It's smooth now.
 
Last edited:
You are correct. I unloaded VoodooI2C (hooray for proper unloading support, I expected the computer to freeze) and kernel_task went down to 2%. I can't wait for the new version to come out (they've been hyping it for a while now). Idle frequency didn't go down though – still 1.2Ghz. Must be something else then? I'll have to look around.

I also noticed while running Geekbench again that the CPU won't TurboBoost all the way up to 2Ghz (as advertised by Intel). If anything, it will go from 1.2Ghz to 1.5Ghz for a second or two, then back down to 1.2. Is this expected? Perhaps Apple tweaked their FrequencyVectors so the MacBook wouldn't get too hot?

EDIT: it TurboBoosts alright. Not sure why GeekBench wasn't pushing it, but I ran higan (accurate, CPU-heavy Super Nintendo emulator) and it reached 2Ghz. In fact it's better than before, with MacBook11,1 I wasn't getting 60 FPS so gameplay was choppy. It's smooth now.

How are you attempting to monitor idle pstate? Using heavy tools like HwMonitor or Intel Power Gadget could themselves mess with your low/idle pstate simply because the tools themselves need CPU resources to operate.
 
How are you attempting to monitor idle pstate? Using heavy tools like HwMonitor or Intel Power Gadget could themselves mess with your low/idle pstate simply because the tools themselves need CPU resources to operate.
I couldn't find much else to monitor CPU speed than those two – do you know of a more lightweight tool I could use?
 
I couldn't find much else to monitor CPU speed than those two – do you know of a more lightweight tool I could use?

AppleIntelInfo.kext, of course.
 
AppleIntelInfo.kext, of course.
Right, you did say P-States. I was thinking about frequency. AppleIntelInfo doesn't tell you the *current* P-State the CPU is in though? It only shows which ones it's been through so far, right? I was thinking I'd compare P-State with frequency shown in Intel Power Gadget (assuming IPW doesn't screw with idling)

Or maybe a better question, how can I tell what my idle frequency is supposed to be? I vaguely recall a map of PStates to frequencies (in hex?) somewhere in ioreg.
 
Right, you did say P-States. I was thinking about frequency. AppleIntelInfo doesn't tell you the *current* P-State the CPU is in though? It only shows which ones it's been through so far, right?

The pstate in parenthesis is the current one.
So, you're only going to get a log when the set of "pstates seen" has changed.
The source for AppleIntelInfo is available if you want it to do something else (like log current pstate every second).
 
Back
Top