2

After removing the battery from a MacBook late 2009 following a battery fault, the computer always runs kernel_task at 100% CPU utilization. I assume the process ends up in some kind of spin lock when looking for the battery and failing to do so. Is there a work around to prevent this issue? While waiting for a new battery, I would like to use the computer in a useful way on connected power.

3 Answers 3

3

The procedure mentioned here, involving the removal of one specific system file, will probably disable the sensor check and prevent the kernel task from gobbling up your CPU, while waiting for your battery: https://apple.stackexchange.com/a/146381/226332

3
  • Does this still work on High Sierra (10.13+) ? I thought it was not possible anymore since Sierra.
    – Xvolks
    Jun 29, 2019 at 12:56
  • It should work but because of the System Integrity Protection you might have to boot from another system to be able to delete the approperiate file Jun 30, 2019 at 11:20
  • I had to boot into recovery partition on macOS High Sierra, open the terminal there and move the file (as described in the linked thread) with mv. Then reboot and you should see the battery check solved. However, I noticed some unexpected side effects, such as the MRT process sometimes using a lot of CPU after boot, likely triggered by macOS after noticing the file missing.
    – user73014
    Jul 6, 2019 at 11:50
2

MacBooks - all types and models - are capable of demanding - and getting - 20% to 45% more power from the battery than is available on the charge supply. The machine runs from the batteries exclusively at all times, unless the battery is removed or a problem is detected and it is switched out of circuit, whereupon the machine will self-throttle so as to not exceed the available charge current.

2
  • Yes, however I see no indication that the described behavior is the throttling. Throttling might occur in addition. Actually, this causes the opposite, meaning that there is always near 100% CPU load from the kernel alone. I suspect this is a bug in a function trying to poll the battery.
    – user73014
    Sep 9, 2019 at 16:17
  • "100% CPU load from the kernel alone" is the throttling : kernel_task does loop on null operations in order to take over the real operations and so slow down the system.
    – challet
    Dec 10, 2019 at 0:43
0

Usually when our Mac is running insanely slow with fans at full speed, it is a sensor issue. You may try to find on the Internet ASD (Apple Service Diagnostic) for your motherboard.

Alternatively you may boot with the D key pressed to enter the diagnostic mode.

Check which sensor (if any) is failing.

See Louis Rossman’s videos on YouTube. He talking about those issues.

5
  • I know it’s simply because the battery is removed. But is there some workaround while I am waiting for a new one?
    – user73014
    Jun 29, 2019 at 8:07
  • AFAIK either you put back the battery if it’s safe, or you’ll have to wait for a replacement part.
    – Xvolks
    Jun 29, 2019 at 8:44
  • 1
    But there has to be a way to stop the corresponding kernel extension from polling data from the battery? This is not a useful failure state
    – user73014
    Jun 29, 2019 at 8:48
  • The sensor are hardware stuff. They drive chips on the motherboard, macOS is very tight to the hardware and hacking into the kernel is not that easy. You may try to run a Linux live cd to check if it’s a macOS Issue or a hardware issue.
    – Xvolks
    Jun 29, 2019 at 9:06
  • I don’t want to „hack“ the kernel, I assume that there has to be a built-in way to disable the first party kernel extensions running wild
    – user73014
    Jun 29, 2019 at 9:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .