29

First of all, the specs:

  • MacBook Pro (15-inch, Early 2011)
  • OS X 10.9.1 (Mavericks)
  • 2.3 GHz Intel Core i7
  • 8 GB RAM

The Problem

Recently, my battery randomly died and I had to disconnect it, otherwise, my computer would not properly turn on (MacBook Pro was restarting itself and turning off over and over again).

Now, every time I plug-in the power cable, it starts straightaway (even without pushing the power button), turns off after a few seconds, and then starts normally. Weird.

Nevertheless, the main problem is, after some time, the laptop becomes VERY slow. By "VERY slow" I mean - games become unplayable (FPS drop from 60 to 6) and kernel_task starts using more than 500% of the CPU. Moreover, the mouse speed significantly increases.

I tried the interrock's (the 10th post) guide but it does not seem to work correctly and caused me a kernel panic related to the SleepEnabler.

P.S. I have read somewhere that Apple does this "underclocking" intentionally, for safety or marketing (to buy a new battery) reasons. Please correct me if I am wrong.

OS X will intelligently throttle CPU based on certain conditions in an effort to a) prolong battery life and b) avoid system damage (through excessive heat). Apple does not "sabotage" machines in an effort to get customers to buy new batteries. – cksum

Any help would be appreciated. Thank you in advance.


Solution (That Worked For Me)

http://www.rdoxenham.com/?p=259

It's a simple fix, and most people that have similar issues to what you describe are quite happy once they realize this. I take no credit for this fix, for it's all thanks to Rhys Oxenhams who researched this and came up with a solution.

Thanks to l'L'l for finding this.

  • Ruling out a temperature sensor might be a great first place to start so I'll answer the "why" portion below in an actual answer. Also, the power on behavior is worrisome and indicates the SMC + hardware or software is not operating properly. Try resetting the NVRAM once as well if you haven't since noticing that issue. – bmike Jan 6 '14 at 18:57
  • 1
    CPU throttling is called SpeedStep and is built into the chip. OS X simply plugs into the technology. SS was pioneered and developed by Intel. As was said, OS X will intelligently throttle CPU based on certain conditions in an effort to a) prolong battery life and b) avoid system damage (through excessive heat). Apple does not "sabotage" machines in an effort to get customers to buy new batteries. – user10355 Jan 6 '14 at 20:42
  • The thing is, on Windows (Boot Camp) everything works totally fine. Even if you do not have a battery, it is possible to select the "High Performance" mode and work as usual. Would it be possible to do the same on the OS X? – Arthur Jan 6 '14 at 20:51
  • Reconnect your battery. Since your model has one built-in, it is not advisable to disconnect it. I imagine this is what is causing the problems as they were never meant to run without one. Then take it into an Apple Store and have them run diagnostics on it. There may be other problems that you are unaware of. If the battery has simply lost its charge over time, it shouldn't cause system reboots unless you are running without the charger plugged in. There is no software fix for the problem you have and you are trying to hide the symptoms rather than fixing the root of the problem. – user10355 Jan 10 '14 at 10:50
12
+50

It does seem like you have a problem with your battery, although it's likely that it's only adding to the underlying issue which you've touched upon.

The concept behind Speedstep seems good, however, the way in which it works is quite bad — especially when it comes to kernel_task. I believe it's the reason you're seeing such a dramatic slowdown — because this "feature" is consuming the majority of your MacBook Pro CPU so it can apparently cool your system down and save energy.

Intel SpeedStep Technology allows the system to dynamically adjust processor voltage and core frequency, which can result in decreased average power consumption and decreased average heat production. (from Intel)

What this equates to is you end up losing a significant portion of the CPU while SpeedStep hijacks kernel_task and continually carries out low-overhead tasks until the CPU temperature drops. Your system essentially becomes bogged down so you can save energy regardless if you want to or not. I would imagine that most people expect to be able to use all of their CPU power when they want to — not when their system allows them.

Luckily this “feature” is built into a kext, in which each model identifier specifies how to control the temperature of the CPU. It's a simple fix, and most people that have similar issues to what you describe are quite happy once they realize this. I take no credit for this fix, for it's all thanks to Rhys Oxenhams who researched this and came up with a solution.

  • Just so we're on the same page, everyone agrees this is a bug for apple and it "should" run without problem without a battery but connected to power, yes? – rogerdpack Jun 9 '18 at 14:30
  • @rogerdpack: Your system might not run properly until you get a new battery; I believe the OP disconnected his battery though and also disabled speedstep from what it sounds like. It shouldn’t hurt anything to try it as he had done. – l'L'l Jun 9 '18 at 23:24
5

The kernel task soaking CPU cycles is primarily a safety and longevity issue.

The CPU is capable of generating far more heat than the MacBook Pro frame can radiate and to control for failing fans and other hardware failures, the system is going to dramatically reduce the CPU's ability to generate heat when it senses a rapid rise in the measured temperatures - especially when the blowers are not responding as expected or already commanded to run at their maximum RPM values.

You will want to rule out temperature as a cause of this behavior as a first step IMO.

Also, consider replacing the battery as it also has temperature sensors and the firmware might be far more conservative with CPU when it knows that some sensors are no longer reporting for duty, so to speak.

  • 1
    I don't think SpeedStep (CPU throttling) is gaged via heat. I think OS X will throttle the CPU by way of a hardware check. If it detects that a fan isn't active, it will throttle the processor to avoid excessive heat. Heat in this case being the control measure not the catalyst. – user10355 Jan 6 '14 at 20:39
4

Apple not only underclocks the CPU to about half, when no battery is present, but also the GPU, either with or without a battery.

I think the reason is not to necessarily force the user to buy a new battery but remains a marketing one. Have you noticed how the MBP AC charger is considerable smaller than most AC chargers for PC laptops? I'm not an expert in watts and voltage but to account for the minimalist and elegant design they didn't make it powerful enough for your MBP to operate. It needs a battery for full power otherwise the AC adapter and your machine could get toasted or simply fail to work.

The GPU throttling was a measure to ensure their brand would get better battery life than the competition, otherwise you would get ~4 hours of usage, not really competitve in the laptop world.

A workaroud for the CPU issue, besides the one you posted, consists in undervolting, which is offered by a shareware app called CoolBook. Unfortunately, it is only supported up to Snow Leopard and has a very strict license policy (per computer, not per user). The safest option is still to get a new battery.

A workaround for the GPU issue is posted here.

3

I think your main issue and you battery are related in a Domino sense. I can't tell from your post but you did say that you unplugged the battery. Doing so reset your SMC that's why now every time you attach a power cord the unit jumps on and has a mild heart attack, restarts and finally boots.

You SMC has been damaged and needs to be reset and for that look to http://support.apple.com/kb/ht3964

Now regarding your CPU% I agree with cksum and bmike. Your battery does have sensors in it and if your battery is missing or damaged then you should get it replaced because the fans and unit will freak out under stress or time. Additionally I would also suggest running Apple Hardware Test which should be on one of your systems grey DVDs that shipped with the unit. Running AHT tests the sensors quickly and does CPU and RAM checks which is something handy in this case. I don't want to think there was any reason ESD damage could happen but it is a risk and possibility.

3

rdoxenham's method does fix the kernel_task issue, but it doesn't bring the cpu's performance back to its actual mode. Let me give you my story's background.

I have a MBP 15'Inch Early 2011(i7, 10GB RAM), So its been a while that it's battery died & I did face the GPU & CPU lag until rdoxenham's fix.

This process is a temporarily fix until we replace our dead/old/faulty battery. Without the battery in the laptop the CPU isn't taking in enough power that it needs to run at its optimum level.

If you use GeekBench for testing your laptop's performance you will notice the difference in your laptop's score & others out their without this issue.

My score seemed affected by the cpu not getting the power it needed without the battery in. This Fix solves the software part of the issue but doesn't solve the hardware part.

Our CPU's need their juice and i would say This FIX is a GREAT fix for them, who's just facing the kernel issue with a working condition battery. But for someone like me(running a macbook without a battery) this doesn't solve everything. GET A BATTERY ASAP. AMAZON it!

0

rdoxenham's metod worked for me too. This was my issue:

MacBook Pro (13-inch, Early 2011), macOS 10.12.1 Sierra. The battery had been dead since a while back but the computer had worked fine. One day it suddenly wouldn't wake up from sleep and the power button didn't react. I pulled out and put back the power cord and could then boot again. Booting now took many minutes and everything lagged. Mouse moved in something like 0.5 fps. Everything worked but there was extreme lag. Animations, the cursor, keyboard input, the time required for opening applications – everything. Activity monitor reported the system using close to 100 % of the CPU almost always. Sometimes it went down a bit and the lag got a bit better. For short moments CPU activity was normal and then everything worked fine, but the problems returned after a minute. kernel_task was reported as using much more CPU than what was available – between 200-1000 %. The problem remained despite reboots and letting the computer stay on overnight. The computer was unusable.

I ruled out bad software and many potential sources of bad hardware. I tried all of this, but the problem remained:

  • Took out the HDD and booted from it externally
  • Booted from another HDD externally, running OS X 10.8 Mountain Lion.
  • Disconnected the internal HDD SATA cable
  • Different power adapter
  • PRAM reset
  • SMC reset
  • Reseated both RAM modules
  • Used only one of the RAM modules at a time, in different slots, to rule out any one of the modules or slots being bad
  • Disconnected the battery
  • Disconnected the AirPort/Bluetooth cable
  • Disconnected the trackpad

I suspected a logic board issue. But I then tried moving out the appropriate kext file from /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/. Like magic, the computer now seems to work fine again. I'll see if I can get a hold on a replacement battery and put back the kext, but for now this will do. I don't get how removing a kext could result in overheating. A kext is part of a specific installation of the OS and would for example not be present when booting into Windows or something else. Surely the temperature must primarily be controlled by something lower level. But well, if the computer dies, it dies. It didn't work before this fix anyway.

You must log in to answer this question.

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