AppleSmartBatteryManager.kext polling every 60 seconds on MBP

Curious if this is normal behavior: checking the console I see a kernel process, AppleSmartBatteryManager, running its polling for battery diagnostics every 60 seconds. It will initially start a poll, and then immediately restart it, then process its series of command checks. This happens whether the MBP is plugged into the power adapter or not. It occurs on both High Sierra 10.13.6 and Mojave 10.14, and appears on any MacBook so far that I've tested. I am currently running a 2018 MBP i9 config, but also checked on a late 2013 model, and a 2011. Those both had High Sierra. This polling event seems to carry a cpu hit with it that can overload your coreaudio stream.


For background audio streaming like from iTunes, it is a bit more random to get the coreaudio to overload with the battery manager. I think it depends on other background processes just hitting the cpu at the same time. Howver, the problem is really apparent within a pro audio app, like Logic Pro. I can replicate the coreaudio overload nearly everytime the battery manager begins its poll.


If I have a CPU intensive plugin on the active track, Logic appears to assign that processing to the same core that the Kernel processes are running. An easy example is to set your audio device in Logic to the MacBook Speakers, set a 64 sample buffer, and load up a heavy Alchemy patch, Bowed Metal Space usually works well for this, and drop in a Chromaverb defaul fx just to run the active track a bit CPU high. Older systems might not need as much to trigger the issue. Then check your console for when the battery manager is cycling its poll, and start playing a bunch of notes live leading up to the time to trigger the synth. I nearly always get a cpu spike within Logic's performance meter, and then a dropout in the audio creating a short glitch sound. The console log will show the overload event happening right after the battery manager starts its poll. Jusat looking for some deeper insight into this. I'm working with a pro audio hardware company to iron out their latest driver, but the more I dig into this, the more is appears an issue with the MBP and the battery manager.


default
17:40:24.007144 -0500
kernel
Starting poll type 2

default
17:40:24.007151 -0500
kernel
Restarting poll type 2

default
17:40:24.010596 -0500
Logic Pro X
HALC_ProxyIOContext.cpp:1068:IOWorkLoop:  HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload

default
17:40:24.013412 -0500
kernel
Command 0x2 completed. inCount: 2 data:0x5

default
17:40:24.016438 -0500
coreaudiod
HALS_OverloadMessage.cpp:159:perform:  Audio IO Overload inputs: '' outputs: 'BuiltInSpeakerDevice' cause: 'Unknown' prewarming: no recovering: no

default
17:40:24.020030 -0500
Logic Pro X
HALC_ProxyIOContext.cpp:1068:IOWorkLoop:  HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload

default
17:40:24.020358 -0500
kernel
Command 0x1 completed. inCount: 2 data:0x1001

default
17:40:24.021368 -0500
kernel
Command 0x16 completed. inCount: 2 data:0x40e0

default
17:40:24.022504 -0500
kernel
Command 0x53 completed. inCount: 2 data:0x0

default
17:40:24.023572 -0500
kernel
Command 0x54 completed. inCount: 2 data:0xe443

default
17:40:24.024720 -0500
kernel
Command 0xa completed. inCount: 2 data:0x0

default
17:40:24.025680 -0500
Logic Pro X
HALC_ProxyIOContext.cpp:1068:IOWorkLoop:  HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload

default
17:40:24.025972 -0500
coreaudiod
HALS_OverloadMessage.cpp:159:perform:  Audio IO Overload inputs: '' outputs: 'BuiltInSpeakerDevice' cause: 'Unknown' prewarming: no recovering: no

default
17:40:24.028233 -0500
coreaudiod
HALS_OverloadMessage.cpp:159:perform:  Audio IO Overload inputs: '' outputs: 'BuiltInSpeakerDevice' cause: 'Unknown' prewarming: no recovering: no

default
17:40:24.030473 -0500
kernel
Command 0xb completed. inCount: 2 data:0x0

default
17:40:24.036699 -0500
kernel
Command 0xc completed. inCount: 2 data:0x1

default
17:40:24.041862 -0500
kernel
Command 0x11 completed. inCount: 2 data:0xffff

default
17:40:24.042774 -0500
kernel
Command 0x3f completed. inCount: 2 data:0x10df

default
17:40:24.043735 -0500
kernel
Command 0x3e completed. inCount: 2 data:0x10de

default
17:40:24.044184 -0500
Logic Pro X
HALC_ProxyIOContext.cpp:1068:IOWorkLoop:  HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload

default
17:40:24.044645 -0500
kernel
Command 0x3d completed. inCount: 2 data:0x10de

default
17:40:24.046732 -0500
coreaudiod
HALS_OverloadMessage.cpp:159:perform:  Audio IO Overload inputs: '' outputs: 'BuiltInSpeakerDevice' cause: 'Unknown' prewarming: no recovering: no

default
17:40:24.050231 -0500
kernel
Command 0x3c completed. inCount: 2 data:0x0

default
17:40:24.056787 -0500
kernel
Command 0x12 completed. inCount: 2 data:0xffff

default
17:40:24.057417 -0500
kernel
Command 0x9 completed. inCount: 2 data:0x329b

default
17:40:24.062899 -0500
kernel
Command 0x8 completed. inCount: 2 data:0xbe7

default
17:40:24.063470 -0500
kernel
Command 0x17 completed. inCount: 2 data:0x8

default
17:40:24.064334 -0500
kernel
Command 0x13 completed. inCount: 2 data:0xffff

default
17:40:24.064789 -0500
kernel
Command 0xf completed. inCount: 2 data:0x1c8b

default
17:40:24.065691 -0500
kernel
Command 0x10 completed. inCount: 2 data:0x1cc1

default
17:40:24.065723 -0500
kernel
SmartBattery: finished polling type 2

default
17:40:24.066056 -0500
coreduetd
CDDBatteryMonitor:
received batterycallback, currentPercentage:99.266404!

default
17:40:24.323963 -0500
Dock
notifyBestAppChanged:(null) UASuggestedActionType=0 / opts=(null) when=Tue Aug 28 17:40:24 2018 confidence=0 from=/

default
17:40:24.893829 -0500
dasd
Rescoring all 127 activities []

default
17:40:24.894399 -0500
dasd
501:com.apple.suggestions.harvest:4F97D0:[


{name: DeviceActivityPolicy, policyWeight: 20.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceActivity == 1}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.894881 -0500
dasd
501:com.apple.mediaanalysisd.fullanalysis:053C55:[


{name: DeviceActivityPolicy, policyWeight: 20.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceActivity == 1}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.895624 -0500
dasd
501:com.apple.KeyboardServices.MigrationTask:01E06D:[


{name: DeviceActivityPolicy, policyWeight: 20.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceActivity == 1}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.896186 -0500
dasd
501:com.apple.parsecd.flusher.background:9157F4:[


{name: DeviceActivityPolicy, policyWeight: 20.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceActivity == 1}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.896966 -0500
dasd
501:com.apple.bird.cache-delete.push:598505:[


{name: DeviceActivityPolicy, policyWeight: 20.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceActivity == 1}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.897456 -0500
dasd
501:PDCardFileManager.CacheMaintenance:A10855:[


{name: DeviceActivityPolicy, policyWeight: 20.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceActivity == 1}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.898136 -0500
dasd
0:com.apple.apsd.apprefresh:DD90CD:[


{name: PowerNapPolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{(inADarkWake == 0 AND appRefresh == 1) AND wakeState == "0x1f"}]}}



 ], FinalDecision: Must Not Proceed}
default
17:40:24.898511 -0500
dasd
Setting timer (isWaking=1, activityRequiresWaking=0) between  and  for

Replies

Curious if this is normal behavior

I don’t know but, given that that it’s obviously causing you grief, I recommend that you file a bug report about it regardless. Make sure to include a sysdiagnose log, per the instructions on our Bug Reporting > Profiles and Logs page.

Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

I submitted a bug report, 43737017. Hopefully it gets looked into. Cheers!