Blog

15 Nov
2020

kernel_task is throttling the CPU

Disable macOS 11 (Big Sur) 'kernel_task' which is throttling the CPU


WARNING ALERT: This ONLY relates to someone who has deleted the IOPlatformPluginFamily.kext in previous versions of macOS to sort the kernel_task overloading the CPU but now after installing macOS 11 (Big Sur) the problem has started again. You will be deleting a system extension and taking a risk... so you have been WARNED!

So here is the problem...

After booting up the MacBook Pro the macOS would be running unbelievably slow. When opening the Activity Monitor to see what was happening with the CPU the thing at the top of the list was the kernel_task using around 500%!

'kernal_task_macOS_fix'

In any of the previous versions - macOS 10.14 (Mojave) or below it was a fairly easy fix by first running recovery mode CMD + R and in the terminal.

csrutil disable

Then running single user mode CMD + S.

fsck -fy

mount -uw /

sudo mkdir /IOPlatformPluginFamily-backup-kexts/

sudo mv /System/Library/Extensions/IOPlatformPluginFamily.kext /IOPlatformPluginFamily-backup-kexts/

sudo rm -rf /System/Library/Extensions/IOPlatformPluginFamily.kext

But from macOS 10.15 (Catalina) onwards this has stopped working. The reason being that Apple introduced the read-only system volume which is a dedicated partition for only storing system content which prevents any tampering with system files which one of them is the troublesome IOPlatformPluginFamily.kext.

Now before finding the solution below which relates to macOS 11 (Big Sur) I had tried making a bootable USB running macOS 10.14 (Mojave) but this couldn't read the read-only system volume.

Step 1 - Disable FileVault

Go to System Preferences -> Security & Privacy and choose the FileVault tab. Then select Turn Off FileVault.

Step 2 - Bypassing the Signed System Volume (SSV*)

SSV helps prevent tampering with any Apple software that is part of the operating system. Additionally, it makes macOS Software Update more reliable and much safer. SSV utilizes APFS snapshots, so if an update cannot be performed, the old system version can be restored without reinstallation.

So this means that macOS Big Sur actually no longer boots from the live system volume but now boots from a snapshot/copy of the same system folder. Normally it's impossible to mount a snapshot as writable, only readable so here is the solution I have found.

So at first bootup in Recovery Mode using CMD + R. On the screen that loads go to the navigation and choose Utilities -> Terminal. Input the following.

NOTE: Without this being done first you won't have permissions to carry out the next csrutil authenticated-root disable command.

csrutil disable

Then.

reboot

Straight away bootup in Recovery Mode again using CMD + R and choose Utilities -> Terminal. Input the following.

csrutil authenticated-root disable

Then.

reboot

Step 3 - Mount the Live Volume and backup the IOPlatformPluginFamily.kext file

Now reboot back into the normal macOS boot mode and let us mount the live volume - the disk1s5 could be different.

diskutil mount disk1s5

Next make it writable which will require you to enter your password - the /Volumes/Macintosh\ HD\ 1 could be different.

sudo mount -uw /Volumes/Macintosh\ HD\ 1

Password:

Now let's first see that the offending IOPlatformPluginFamily.kext file exists by entering.

ls -a /Volumes/Macintosh\ HD\ 1/System/Library/Extensions/

Rather than deleting the file we will do a backup - so use the below and move it to a newly created folder.

sudo mkdir /Volumes/Macintosh\ HD\ 1/IOPlatformPluginFamily-backup-kexts/

sudo mv /Volumes/Macintosh\ HD\ 1/System/Library/Extensions/IOPlatformPluginFamily.kext /Volumes/Macintosh\ HD\ 1/IOPlatformPluginFamily-backup-kexts/

Again see if it has disappeared from the directory.

ls -a /Volumes/Macintosh\ HD\ 1/System/Library/Extensions/

Step 4 - Create snapshot and tag it for the next default reboot.

Now we have deleted the file we need to add this new version of the system folder as a snapshot so enter the following.

sudo /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -s "SnapshotName" -v /Volumes/Macintosh\ HD\ 1

Then tag this as a our default for the next reboot.

sudo /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -r "SnapshotName" -v /Volumes/Macintosh\ HD\ 1

Now fingers crossed you should be able to reboot and the kernel_task should no longer be hogging the CPU as before and in return slowing your machine down.

Posted in: < Mac OS X >
me@grafxflow avatar

me@grafxflow


I am a Full-stack Developer who also started delving into the world of UX/UI Design a few years back. I blog and tweet to hopefully share a little bit of knowledge that can help others around the web. Thanks for stopping by!

Visitors also viewed these posts

14 Thoughts

  1. 16 Nov
    2020

    avatar

    John

    You shouldn't do the `csrutil authenticated-root enable` again as it will re-enable the verification/tampering on the SSV. This will result it not booting from your new snapshot but using the old one.

    Correct me if I'm wrong though :)
  2. 16 Nov
    2020

    avatar

    me@grafxflow

    Thanks for the update John.

    I was unaware of this, but yes it seems to be the case.

    I have updated the content :)
  3. 16 Nov
    2020

    avatar

    Florian

    Thank you for the nice description. Unfortunately its not working for me. The Operation is not permitted.

    sudo mv /Volumes/Macintosh\ HD\ 1/System/Library/Extensions/IOPlatformPluginFamily.kext /Volumes/Macintosh\ HD\ 1/IOPlatformPluginFamily-backup-kexts/
    mv: rename /Volumes/Macintosh HD 1/System/Library/Extensions/IOPlatformPluginFamily.kext to /Volumes/Macintosh HD 1/IOPlatformPluginFamily-backup-kexts/IOPlatformPluginFamily.kext: Operation not permitted

    What have I done wrong?
  4. 17 Nov
    2020

    avatar

    me@grafxflow

    Hi Florian,

    Have you tried the?

    sudo mount -uw /Volumes/Macintosh\ HD\ 1

    If not try the Recovery Mode using CMD + R and input.

    csrutil disable
  5. 18 Nov
    2020

    avatar

    John

    There's one downside I'm experiencing, after disabling authenticated-root boot times of my macbook have increased with 5 minuntes.
    The loading bar crawls to the center as usual, stops for 4-5 minutes and then continues as usual. Once in macOS everything is fast and well, shutdown takes ages too.

    Anyone with similar problems?
  6. 19 Nov
    2020

    avatar

    me@grafxflow

    Hi John,

    Yes I am noticing this to. It seems to hold 50% on the loading bar for a few minutes when starting up. Plus the fans are on full blast. Maybe see what happens with the next macOS update.

    I also might need to look inside the laptop and see if cleaning it with some compressed air spray will sort the problem.

    regards
    Paul
  7. 19 Nov
    2020

    avatar

    Vi

    Hi! I updated my macbook air and the kernel task is just taking up all the cpu. I tried to do this but filevault is preventing it. I tried disabling it but it just isnt decrypting. Any idea what I could do?
  8. 19 Nov
    2020

    avatar

    me@grafxflow.co.uk

    Hi Vi,

    Try the following:

    Go to System Preferences -> Security & Privacy.

    Then select the FileVault tab and Turn Off FileVault.

    Then one thing that is missing from the tutorial (Need to update it)

    Bootup in Recovery Mode using CMD + R then enter

    'csrutil disable'

    'reboot'

    Then start from 'Step 1 - Bypassing the Signed System Volume (SSV*)'
  9. 20 Nov
    2020

    avatar

    John

    Hi Paul, I have reinstalled Big Sur and redit my patch (new snapshot and all) and now the boottimes are back to normal.
    So if you're stuck at that, try recovery console - reinstall big sur et voilla :D
  10. 20 Nov
    2020

    avatar

    me@grafxflow

    Hi John,

    So just to confirm you suggest installing the macOS from Recovery Mode rather than the desktop?

    And do you mean a reinstall or fresh install wiping the hard drive?
  11. 01 Dec
    2020

    avatar

    TheMalfunctioningSMC

    Have you figured out how to fix the boot time?
  12. 01 Dec
    2020

    avatar

    me@grafxflow

    Hi TheMalfunctioningSMC,

    Sadly not. I am beginning to think it maybe the actual macOS so will wait until there is an update.
  13. 02 Dec
    2020

    avatar

    TheMalfunctioningSMC

    Hi grafxflow,

    I followed all of your steps and it went through perfectly fine. Thanks for saving the day! Btw did you try John's suggestion of reinstalling Big Sur and "patching" the kexts again? What if macOS 15.2 releases, is it advisable to upgrade or will it break our patch? Does Activity Monitor itself take a high CPU % when open? Do you suggest any fan RPM app? I want to set it at 3500RPM

    Sorry to bother you with so many questions. Thanks again!!
  14. 02 Dec
    2020

    avatar

    me@grafxflow

    Hi TheMalfunctioningSMC,

    1. I did try what John suggested but it still gave me the slow startup.

    2. From my experience it mainly relates to new versions of macOS where this needs to be done again.

    3. Activity Monitor itself should not cause any problems with the CPU usage.

    4. You can use a fan app but still keep an eye on the temperatures.

Add comment

Add comment