1

I just gave in to the App Store's constant nagging about upgrading to Yosemite. Aside from an unhappy Chrome, there is this kextd process that's constantly running close to 95% CPU. This results in the fan also running constantly and my battery being drained.

Things I tried but didn't work:

  • removed all the .plist files
  • upgraded to 10.10.1 when it came out this morning
  • called Apple support who had me delete a cache file (/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache/loadedkextmt.plist)

The process doesn't start straight at boot, but maybe 10 minutes later during use.

How can I get this kextd process to quiet down?

2
  • @bmike: the process that's overloaded in my case is kextd, not kernel_task.
    – ben
    Commented Nov 17, 2014 at 21:06
  • Fair enough - sorry for any confusion I caused.
    – bmike
    Commented Nov 18, 2014 at 12:49

3 Answers 3

2

I had this same issue and I found this message repeatedly on the system logs: com.apple.kextd[8095]: Kext net.semaja2.kext.insomnia not found for client path request.

Closing InsomniaX quickly solved the issue for me. Will do some more research on how to properly fix this in order to have InsomniaX running.

EDIT: After uninstalling InsomniaX and upgrading to the latest build the issue has been resolved.

3
  • I do use insomnia so that could fit! I've downgraded back to maverick a while ago though so can't test the hypothesis.
    – ben
    Commented Jan 20, 2015 at 4:30
  • omg it was insomniaX in my case! Commented Mar 18, 2015 at 20:17
  • This also happened to someone in my family with InsomniaX. Hurts to think that they had the CPU pegged at 100% at all times for probably a year now due to this
    – Colin D
    Commented Jun 23, 2018 at 18:35
1

The kextd is a process that handles loading and unloading kernel extensions. So if the system is going nuts with kextd usage it could mean there is a corrupted kernel extension. And this could be related to Spotlight reindexing the system after the upgrade. In fact, I would bet that is the case since Spotlight always reindexes—and it seems to take forever—after any system update.

The quick/easy way to see if Spotlight is in action is to look at the magnifying glass icon in the top right area of the finder control bar. If that magnifying glass has a small dot in it that is pulsing in and out and if you then click on the Spotlight magnifying glass it says something about indexing in progress, then there you go.

Another—more radical—way to deal with this if it’s not spotlight is to actually adjust the way the system kernel reacts to certain kernel texts by essentially “hacking” the IOPlatformPluginFamily.kext to remove your system from that kernel process. More details here but here is the long and short of it. As the site says—and I will restate—this is a radical method to deal with the issue and might result in the system being unusable. So proceed at your own risk. But honestly, when you look at how easy it is to roll this change back I would just not worry too much… Just worry enough.

Anyway, go into the Terminal and type this:

 system_profiler -detailLevel mini | grep "Model Identifier:"

Now wait a second or two. The system should return something like this; running this on my Mac Mini running Mac OS X 10.9.5 (Mavericks) so it returns the following:

Model Identifier: Macmini6,1

Next confirm that IOPlatformPluginFamily.kext is running by typing in this:

kextstat | grep IOPlatformPluginFamily

The value I get returned is this:

85    7 0xffffff7f81066000 0xa000     0xa000     com.apple.driver.IOPlatformPluginFamily (5.7.1d6) <10 7 6 5 4 3>

And as explained on the site I am linking to:

Within this kext will be another further kext- ACPI_SMC_PlatformPlugin.kext, in which each recent Macintosh model is listed with relevant instructions that the kernel uses to determine how and when to invoke the control.

Now type in the following to get into the nitty gritty of ACPI_SMC_PlatformPlugin.kext within IOPlatformPluginFamily.kext:

cd /System/Library/Extensions/IOPlatformPluginFamily.kext/
cd Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/
cd Contents/Resources/

Yes, that is a lot of cd items that could probably be one line, but it does show the overall process of what you are attempting to do. Or you could just do this massive cd as a one liner:

cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

Now while in there, run this ls command to count the items in there:

ls | wc -l

On my system, I get the following:

50

Which means 50 different systems have profiles in ACPI_SMC_PlatformPlugin.kext. You can also just run ls -la like this to see the whole list if you wish. But for now, find yours by running an ls command like this:

ls MacBookPro*

Which will list all of the MacBook Pro profiles. So let’s say your MacBook Pro has the system identifier:

MacBookPro5,5

Then the connected profile in ACPI_SMC_PlatformPlugin.kext would be:

MacBookPro5_5.plist

Now we want to move that profile out of ACPI_SMC_PlatformPlugin.kext so the system does not act on that. You can do it like this using sudo:

sudo mv MacBookPro5_5.plist ~/

You’ll be asked for your password. After you enter that the file MacBookPro5_5.plist will be moved to your home directory (aka: ~/) which effectively neutralizes it from ACPI_SMC_PlatformPlugin.kext.

Now just restart your machine and see what happens. Chances are it will clear up the issue of kextd CPU usage. If it doesn’t, something else has happened.

If none of what we just did makes you feel comfortable and you want to roll this change back, just move the MacBookPro5_5.plist file back like this:

sudo mv ~/MacBookPro5_5.plist /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

And restart your machine. The profile will now be back and active in ACPI_SMC_PlatformPlugin.kext and you will be back to the way you started.

2
  • Hi Jake. Spotlight doesn't seem to be indexing as per your description, and mds and mds_stores are using barely any CPU. I actually tried your hack earlier and wasn't able to find my Mac version in the list. My version is MacBookAir6,2, and the list stops at MacBookAir4_2. When I do kextstat | grep IOPlatformPluginFamily it returns 94 4 0xffffff7f8136e000 0xa000 0xa000 com.apple.driver.IOPlatformPluginFamily (5.8.0d49) <11 7 6 5 4 3>.
    – ben
    Commented Nov 17, 2014 at 1:02
  • Since I couldn't find the plist for my Mac I did some additional research and found this post: mactalk.com.au/11/116990-kernel_task-mavericks.html#post1207490. I moved all lists to another folder but kextd is still hungry for more power.
    – ben
    Commented Nov 17, 2014 at 2:05
0

I find that there is not a real fix to it and OS X may not run correctly if you stop it.

But, if you search for kexts you should be able to find it. Click it and then press the button under the close button in the window.

enter image description here

1
  • It just comes right back up when you close it...
    – ben
    Commented Nov 17, 2014 at 2:14

You must log in to answer this question.

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