kernel_task is throttling the CPU
me@grafxflow

Written by me@grafxflow

15 Nov, 2020
78
226,751

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! + also best to use version 11.1 upwards, since when testing with 11.0.1 I found it very buggy!

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.

NOTE: To find out if 'disks5' is correct for your machine enter diskutil list in the terminal which will list your drives.

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.

Share this article

Add comment...

78 Responses

Skarn
18 Jul 2021

Hi. I did all of that, the Mac OS X does not want to start up. Just freezes on half the loading. I tried enabling the verbose loading mode which throws a bunch of errors stating "too many corpses are being created". After re-enabling authenticated-root through recovery, it boots up into the original snapshot and Mac OS boots back to normal. I repeated, the corpses issue again. Any ideas, I really need to kill that kernel_task crap.

|

me@grafxflow
18 Jul 2021

Hi Skarm,

Just checking it is macOS 11 (Big Sur) you are running?

To me it sounds more like a severe hardware problem.

|

Skarn
18 Jul 2021

Yes. It is Big Sur. Mac works fine if I get back to the original snapshot by re-enabling the authenticated root. But if I repeat, I am unable to load into Mac OS.

Oly
23 Jul 2021

Thank you for the guide. It's working fine for me (except for the long boot-time).
Could you be knowing what is causing all this in the first place?

Eddie
04 Aug 2021

What's the fix for "unknown special file or file system" issue?

donald
06 Oct 2021

Hello guys, Be careful and do not do a NVRAM/PRAM or a SMC resetting. I installed big sur nearly a month ago and did the things suggested from this post (I performed everything from recovery mode terminal, you just avoid writing in the beginning) and everything was fine.
Yesterday I decided to reset NVRAM and SMC and I got a the computer started a rebooting loop.

Now I reinstalled the macos and did this again and everything is fine.

Johnny
18 Oct 2021

I was able to successfully made it through all the steps of the instruction. But booting now is exhausting with its 2-5 minutes. Before my system started within 20 seconds. Aaaaand when I enable csrutil and authenticated root I'm not able to boot anymore. A system error occurs and I'm only able to run the recovery mode. Does anyone know why? Without enabling csrutil and authenticated root I cannot enable FileVault again... That's bad!!!

Dmitriy
03 Nov 2021

Please, correct the item sudo mount -uw /Volumes/Macintosh\HD\1. It is absolutely unclear that the backslash is escaping spaces. And that first you need to go to Volumes and find a folder similar to Yourmapname 1

Josh
09 Feb 2022

I have a wifi hardware problem in my iMac. And it was getting me kernel panics after every reboot. I was trying to disable the wifi kext in recovery mode, but the kext file was being created again after every reboot. I was almost giving up, then I’ve found your snapshot commands, which finally solved the problem and I was able to delete IO80211Family.kext permanently. No more kernel panics. Thanks a lot! You really helped me.

thib
07 Mar 2022

HI

when I try "sudo mount -uw /Volumes/Macintosh\ HD"
result:
mount: unknown special file or file system


and
ls /Volumes/Macintosh\ HD
result :
Applications Volumes etc sbin
Library bin home tmp
System cores opt usr
Users dev private var


thank you!

mikkmait
22 Apr 2022

My Library folder has no Extensions folder inside it, anyone have that issue?

outtacontrol
06 May 2022

Does this work with macos monterey?

Smart Search

me@grafxflow Author Profile picture

me@grafxflow

Founder, 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. I build lighting-fast dynamic content engines with Laravel, Winter CMS and Tailwind CSS. Thanks for stopping by!