Lots of kmutil executions

I am seeing kmutil being executed a *lot* on my iMac with Big Sur.

Apple's documentation says kmutil is used for loading and unloading kexts (and some other things).

Should I be concerned with this much kmutil activity?

Accepted Reply

I found the issue (sort of). kmutil is launching com.apple.fsplaceholder, so I feel better that it is an Apple thing.

I still don't know what is going on, but an example capture of one of the processes is shown below if anyone is interested. launchd forks, then executes xpcproxy with the arguments (xpcproxy com.apple.applefsplaceholder), and then executes kmutil with the arguments (load -b com.apple.fsplaceholder).


Code Block
pid: 26919
first observed: 2020-11-17 13:54:20
last observed: 2020-11-17 13:54:20
program: kmutil
program path: /usr/bin/kmutil
signing ID: com.apple.kmutil
team ID:
program modification date: 2020-01-01 00:00:00
program status date: 2020-01-01 00:00:00
ppid: 1
parent program: launchd
parent program path: /sbin/launchd
parent signing ID: com.apple.xpc.launchd
parent team ID:
parent program modification date: 2020-01-01 00:00:00
parent program status date: 2020-01-01 00:00:00
FORK /sbin/launchd
EXEC /usr/libexec/xpcproxy
arguments:
xpcproxy
com.apple.applefsplaceholder
EXEC /usr/bin/kmutil
arguments:
/usr/bin/kmutil
load
-b
com.apple.fsplaceholder
exit


Replies

Do you have a 3rd party kext installed that might be loading itself in a loop? Its hard to dive in without additional information.
No 3rd party kexts installed.
I found the issue (sort of). kmutil is launching com.apple.fsplaceholder, so I feel better that it is an Apple thing.

I still don't know what is going on, but an example capture of one of the processes is shown below if anyone is interested. launchd forks, then executes xpcproxy with the arguments (xpcproxy com.apple.applefsplaceholder), and then executes kmutil with the arguments (load -b com.apple.fsplaceholder).


Code Block
pid: 26919
first observed: 2020-11-17 13:54:20
last observed: 2020-11-17 13:54:20
program: kmutil
program path: /usr/bin/kmutil
signing ID: com.apple.kmutil
team ID:
program modification date: 2020-01-01 00:00:00
program status date: 2020-01-01 00:00:00
ppid: 1
parent program: launchd
parent program path: /sbin/launchd
parent signing ID: com.apple.xpc.launchd
parent team ID:
parent program modification date: 2020-01-01 00:00:00
parent program status date: 2020-01-01 00:00:00
FORK /sbin/launchd
EXEC /usr/libexec/xpcproxy
arguments:
xpcproxy
com.apple.applefsplaceholder
EXEC /usr/bin/kmutil
arguments:
/usr/bin/kmutil
load
-b
com.apple.fsplaceholder
exit


Hi, I've had this same issue ever since upgrading to Big Sur a month ago. Launchd fires kmutil load -b com.apple.fsplaceholder every 10 seconds, causing kernelmanagerd to be my top 2 CPU user.

The following tricks have not helped:

  • Booting without 3rd party kexts with Cmd+S¹
  • Resetting NVRAM, as suggested on MacRumors forums
  • Quitting Dropbox, Google Drive, pCloud Drive and Keybase
  • Delete deprecated /Library/Extensions/Dropbox.kext
  • sudo kmutil install --check-rebuild and sudo kmutil install --update-all, which fails with: failed to build release collection: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
  • sudo launchctl unload /System/Library/LaunchDaemons/com.apple.applefsplaceholder.plist, which fails: Operation not permitted while System Integrity Protection is engaged

¹ I thought this would be safe mode, but is actually single-user mode, which should be disabled but in fact booted with no 3rd party kexts loaded. Safe mode (hold shift) does not work as I've forgotten my EFI password 😅

However, just once I got kernelmanagerd to quiet down by starting Dropbox.

I crudely checked that Dropbox (and VMware) have linkings against com.apple.fsplaceholder:

/Library $ sudo grep -i fsplaceholder -R .
Binary file ./Apple/System/Library/Receipts/com.apple.files.data-template.bom matches
Binary file ./DropboxHelperTools//Dropbox_u501/dbkextd matches

/Applications $ sudo grep -i fsplaceholder -R .
Binary file ./Dropbox.app/Contents/XPCServices/InfiniteProxyHelper.xpc/Contents/MacOS/InfiniteProxyHelper matches
Binary file ./Dropbox.app/Contents/XPCServices/InfiniteProxyHelper.xpc/Contents/embedded.provisionprofile matches
Binary file ./Dropbox.app/Contents/Frameworks/python-extensions/macinfinite_native.cpython-38-darwin.so matches
Binary file ./VMware Fusion.app/Contents/Library/vkd/spherelet-initrd matches

Here's my 3rd party kexts, after removing two from unidentified developers.

Attached is one round of kernelmanagerd insistently checking extensions.

  • BIg Sur (or was it Catalina?) REALLY changed how kexts are handled, and if you've upgraded from previous versions of MacOS it seems the system can get somewhat stuck rebuilding the current kext "collection". I'm not sure how much of my issues were just Dropbox triggering com.apple.fsplaceholder (see other comments here) but I think it's worth commenting here the other troubleshooting tools I found in case others find it useful:

    kmutil log show #shows last day's kernal management activity kmutil log stream #shows current activity kmutil clear-staging #might help if you're trying to remove a 3rd party kext but it seems not to go away And finally, what really seemed to help for me was booting into recovery and running:

    kmutil trigger-panic-medic --volume-root /volumes/name-of-my-boot-drive Once you reboot, any 3rd party kexts using the "old" system of installation will once again require you to acknowledge them in System Preferences' Security & Privacy's General tab, at the bottom. For each 3rd party extension it finds, it will ask you to "Allow" it and then reboot for it to be added back in to the next kext "collection" or whatever they call it now.

    The "new" way going forward is like what Little Snitch does, where the kext is stored in the application bundle and MacOS is just told to hot-load it. I think these new ones run in user-space and thus are more crash resistant? The older ones that have to run in kernal-space no longer can be hot-loaded and must go through this collection-update and reboot process. And it's apparently even more complicated on Apple Silicon.

Add a Comment

Hello I Fixed this by deleting them nasty smelling file:

$ ls -l /Library/Preferences/com.apple.fsplaceholder/
-rw-r--r--  1 root wheel   0 May 21 18:43 com.dropbox.user.98ecb765c7491ca8a181eaacc2aeac1ce7fd0c4a

Restarted Dropbox, and it hasn't come back as of yet. Thanks, Dropbox..

--

I realised that /System/Library/LaunchDaemons/com.apple.applefsplaceholder.plist has:

	<key>QueueDirectories</key>
	<array>
		<string>/Library/Preferences/com.apple.fsplaceholder</string>
	</array>

…and from man launchd.plist:

QueueDirectories <array of strings> This optional key keeps the job alive as long as the directory or directories specified are not empty.

Huh 🤪

  • This fixed the CPU spike every 10s for me! However the file just comes back after rebooting. Any ideas on how to prevent that?

  • I simply deleted the directory /Library/Preferences/com.apple.fsplaceholder and created an empty file in its place to block its creation. So far that has seemed to do the trick!

    Someone needs to write to dropbox to ask them why their daemons insist on creating com.dropbox.user.98ecb765c7491ca8a181eaacc2aeac1ce7fd0c4a all the time!? IMPORTANT EDIT: This does solve the excessive kernalmanagerd activity, but it also somewhat breaks SmartSync. Apparently what the com.dropbox.user... file is for has to do with the trigger that happens when you access a SmartSync "online only" file placeholder so that it automatically downloads. A better solution will need to be found.

Add a Comment

Hi, I have the same problem with kernelmanagerd.

May I ask what kind of logs you were looking at to figure out where the problem was coming from?

  • Run "kmutil log show" and it will dump the last day's logs, or run "kmutil log stream" to view the current log going forward.

    My problem was as some others here had, with Dropbox creating an empty file at "/Library/Preferences/com.apple.fsplaceholder/com.dropbox.user.98ecb765c7491ca8a181eaacc2aeac1ce7fd0c4a" which triggered something to run kmutil on it that does... nothing except chew up cpu and disk resources. Over less than 24 hours it had caused kernelmanagerd to run up over an hour of cpu time and 30+ GB of data read and written.

    Deleting the com.dropbox.user... file would solve it temporarily until something puts it right back again. So, I deleted the com.apple.fsplaceholder directory and replaced it with an empty file. So far that has done the trick. Time will tell what else that directory is supposed to be used for and will break because of my treachery. :) EDIT: Aha. This breaks Dropbox's SmartSync. Grr.

Add a Comment

Sorry to bring this thread from the dead... I'm having the same problem, and I can confirm what PerterJ has said. However, I contacted dropbox about the issue and hopefully they will do something about it. I have just a question, how did you create the empty file com.apple.fsplaceholder to avoid the recreation of the directory. I've created a file (with textedit) with no extension, but the folder keeps being created. How did you manage this?

Thanks,

G.