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
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:
Now while in there, run this
ls command to count the items in there:
ls | wc -l
On my system, I get the following:
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:
Which will list all of the MacBook Pro profiles. So let’s say your MacBook Pro has the system identifier:
Then the connected profile in
ACPI_SMC_PlatformPlugin.kext would be:
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 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
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.