kernel_task is throttling the CPU
me@grafxflow

Written by me@grafxflow

15 Nov, 2020
78
226,752

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

Moe
27 Jan 2021

Can i delete the snapshot after the booting?
Because i don’t have so much space on my HD haha

|

me@grafxflow
27 Jan 2021

Hi Moe,

Sadly not because it's the snapshot you will be booting from every time.

Mir
31 Jan 2021

I can’t deactivate FileVault :( I try everything.

I unlock this thing and it’s Stil grey :/

Grisha
01 Feb 2021

What is the best way to revert something like this?

|

me@grafxflow
01 Feb 2021

Hi Grisha,

I think the easiest option is to go back to stage 2.

csrutil authenticated-root enable

IPC
11 Feb 2021

Can this fix work for Catalina as well?

|

me@grafxflow
11 Feb 2021

Hi IPC,

Yes the same should work for Catalina.

Voldemort
14 Feb 2021

Hi me@grafxflow,

I have this problem on my MacBook Pro 16' after upgraded to Big Sur 11.2.1.

But I have not deleted the IOPlatformPluginFamily.kext in previous versions of macOS. Would this method also available for me?

|

me@grafxflow
14 Feb 2021

Hi Voldemort,

Yes I am using the same Big Sur 11.2.1. Even with every Big Sur update I have to still do this.

I have never had to do this in the past but it all comes down to the new way the system folder is created in the newer MacOS's.

|

Voldemort
14 Feb 2021

Hi me@grafxflow,

I'm going to try your method and would you tell me how to know which one I should mount if the disk1s5 and the /Volumes/Macintosh\ HD\ 1 is different from Step 3?

Thanks.

|

me@grafxflow
14 Feb 2021

Hi Voldemort,

'disk1s5' may actually be the identifier/alias for '/Volumes/Macintosh\ HD\ 1'. So still use 'Volumes/Macintosh\ HD\ 1' but to find out - in the terminal enter the following.

diskutil list

Hope this helps. Also updated tutorial content.

|

Voldemort
15 Feb 2021

Hi me@grafxflow,

I have done the steps but when "sudo mount -uw /Volumes/Macintosh\ HD\ 1" the output goes: unknown special file or file system. However the next stpes seems OK. I'm confused if I do the works well? Would you help me confirm it?

Sorry for my many questions. Thanks for your help!

https://imgur.com/9y6LTLF
https://imgur.com/tuGtDtC
https://imgur.com/DNWvyBT

|

Voldemort
15 Feb 2021

One downside I'm experiencing is, CPU is on 800MHz almost all the time.

Anyone with similar problem?

Steven C
13 Mar 2021

Hi,

I was able to compete the tutorial. My intent is to prevent the AppleIntelKBLGraphics.kext from loading which causing my screen flickering badly. Upon completed and restarted, how to confirm whether:

1) Big Sur is loaded from the new snapshot instead?
2) Sadly I can still see the AppleIntelKBLGraphics.kext being loaded from kextstat command. Strangely, it was removed from /System/Library/Extensions after reboot though.
3) Any method to reset back to original snapshot?

ET
17 May 2021

Thank you so much for this guide. I seem to be getting stuck where others got stuck but later said they figured it out but never posted what they figured out. I am stuck here…"sudo mount -uw /Volumes/Macintosh\ HD\ 1" the output goes: unknown special file or file system.

I know I am sure you are tired of all the question but I would very much appreciate any help you could offer. Thanks!

|

Coco
19 May 2021

Hi ET,

Try the step 3 with "diskutil mount disk1s1" the localisation of Macintosh HD is perhaps different.

|

ET
24 May 2021

Thank you Coco and me@grafxflow for the help… I am way over my skis but any advice how to get past step 3 would be great. Diskutil list shows this… any personalized steps next would be so helpful… thanks!!! (Hit char limit will post below)

|

Et
24 May 2021

/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI ⁨EFI⁩ 209.7 MB disk0s1
2: Apple_APFS ⁨Container disk1⁩ 500.1 GB disk0s2/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +500.1 GB disk1 Physical Store disk0s2

|

Et
24 May 2021

1: APFS Volume ⁨HD - Data⁩ 152.9 GB disk1s1
2: APFS Volume ⁨Preboot⁩ 282.2 MB disk1s2
3: APFS Volume ⁨Recovery⁩ 622.1 MB disk1s3
4: APFS Volume ⁨VM⁩ 1.1 GB disk1s4
5: APFS Volume ⁨HD⁩ 15.3 GB disk1s5
6: APFS Snapshot ⁨com.apple.os.update-...⁩ 15.3 GB disk1s5s1

|

me@grafxflow
27 May 2021

Hi Et,

Best to disconnect any external harddrives when doing this.

|

ET
28 Jun 2021

Finally figured out the right syntax to get by step 3 and it worked! Thanks very much for the tutorial!

|

Zahid
05 Apr 2022

HI ET

what is the right syntax to get by step 3.
I am stuck on ,
mount: unknown special file or file system /Voumes/MacOS

|

me@grafxflow
05 Apr 2022

Hi Zahid,

I am guessing your volume name maybe different than the tutorial.

Nima
22 May 2021

Thank you for the great post. Did you find a solution to the slow booting time? As you mentioned, it gets stuck for a few minute on around 50% and then boots.

|

me@grafxflow
22 May 2021

Hi Nima,

Sadly not :(

iom
27 May 2021

It worked for me :) but now booting/shutdown is taking too long, maybe 3 to 5 minutes. Any thoughts?

|

me@grafxflow
27 May 2021

Hi iom,

I have looked at the startup in verbose mode and it seems to hang on the x86PlatFormPlugin which is what has been deleted. So I need to look into this in more detail.

UPDATE: Sadly the best solution for me was to revert back to macOS Catalina

glx101
05 Jun 2021

iMac 2017 21 Big Sur 11.4
> 6 months running older OS high CPU usage has slowed system performance. Full stripdown service, clean and reinstall latest OS
yet the issue persists.

temps within normal range 24º-35ºC
STATUS:
Every time I try to boot into safe mode system hangs so I used a USB Boot for Mojave..
into safe mode csrutil disable - works fine
reboot into safe mode csrutil authenticated-root disable FAILS Every time invalid command "authenticated-root"

suggestions please?

|

me@grafxflow
05 Jun 2021

Hi glx101,

csrutil authenticated-root disable is only required for 'Big Sur', and should only work in 'Recovery Mode'

I have gone back to using macOS Catalina.... which I know is a pain!

|

glx101
07 Jun 2021

Thanks for the replay and
Ahhh ok so if I use a USB (mine wont boot into std recovery by itself) do I have to do anything else (different) to disable the csrauthenticated-root.

I had wondered if that might be causing me issues.

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!