You are not logged in.

#1 2017-01-14 20:49:11

heystove
Member
Registered: 2014-02-06
Posts: 14

[SOLVED] NetworkManager floods dbus, causing high CPU

[SOLUTION]
Boy, do I feel dumb. The issue was from a script I had running in my tmux status line. I was using the command "nmcli dev wifi" to show the signal bars for my wifi connection. This command causes a quick scan of nearby SSIDs! Simply having tmux running caused the scan to occur once per second, thus the high CPU usage.

I have changed my script to use the info from elsewhere.


--- original post below ---


[UPDATE] The issue is not related to suspend! It simply triggers after a little while, no user action required.

My system is a ThinkPad x220 running GNOME 3.22. Dbus is at version 1.10.14-1. The issue occurs with both the mainline and lts kernel.

Upon waking from suspend or simply stopping the NetworkManager service, the "dbus-daemon --system" process's CPU usage jumps from 0% to ~%25 every second. That is, it's a pulsation, not constant usage.

Running dbus-monitor --system outputs the following:

signal time=1484423969.739385 sender=org.freedesktop.DBus -> destination=(null destination) serial=4031 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2495"
   string ""
   string ":1.2495"
signal time=1484423969.842909 sender=org.freedesktop.DBus -> destination=(null destination) serial=4032 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2495"
   string ":1.2495"
   string ""
signal time=1484423969.850658 sender=org.freedesktop.DBus -> destination=(null destination) serial=4033 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2496"
   string ""
   string ":1.2496"
signal time=1484423969.945812 sender=org.freedesktop.DBus -> destination=(null destination) serial=4034 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2496"
   string ":1.2496"
   string ""
signal time=1484423969.954209 sender=org.freedesktop.DBus -> destination=(null destination) serial=4035 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
   string ":1.2497"
   string ""
   string ":1.2497"

<output truncated>

Then, some NetworkManager information appears and repeats:

signal time=1484423977.775176 sender=:1.1187 -> destination=(null destination) serial=108202 path=/org/freedesktop/NetworkManager/Devices/2; interface=org.freedesktop.NetworkManager.Device.Wireless; member=AccessPointRemoved
   object path "/org/freedesktop/NetworkManager/AccessPoint/22"
signal time=1484423977.775508 sender=:1.1187 -> destination=(null destination) serial=108203 path=/org/freedesktop; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesRemoved
   object path "/org/freedesktop/NetworkManager/AccessPoint/22"
   array [
      string "org.freedesktop.NetworkManager.AccessPoint"
   ]
signal time=1484423977.776708 sender=:1.1187 -> destination=(null destination) serial=108206 path=/org/freedesktop/NetworkManager/Devices/2; interface=org.freedesktop.NetworkManager.Device.Wireless; member=AccessPointRemoved
   object path "/org/freedesktop/NetworkManager/AccessPoint/56"
signal time=1484423977.777084 sender=:1.1187 -> destination=(null destination) serial=108207 path=/org/freedesktop; interface=org.freedesktop.DBus.ObjectManager; member=InterfacesRemoved
   object path "/org/freedesktop/NetworkManager/AccessPoint/56"
   array [
      string "org.freedesktop.NetworkManager.AccessPoint"
   ]
signal time=1484423977.778363 sender=:1.1187 -> destination=(null destination) serial=108210 path=/org/freedesktop/NetworkManager/Devices/2; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
   string "org.freedesktop.NetworkManager.Device.Wireless"
   array [
      dict entry(
         string "AccessPoints"
         variant             array [
               object path "/org/freedesktop/NetworkManager/AccessPoint/29"
               object path "/org/freedesktop/NetworkManager/AccessPoint/44"
               object path "/org/freedesktop/NetworkManager/AccessPoint/61"
               object path "/org/freedesktop/NetworkManager/AccessPoint/45"
               object path "/org/freedesktop/NetworkManager/AccessPoint/48"
               object path "/org/freedesktop/NetworkManager/AccessPoint/62"
               object path "/org/freedesktop/NetworkManager/AccessPoint/60"
               object path "/org/freedesktop/NetworkManager/AccessPoint/64"
               object path "/org/freedesktop/NetworkManager/AccessPoint/65"
               object path "/org/freedesktop/NetworkManager/AccessPoint/63"
               object path "/org/freedesktop/NetworkManager/AccessPoint/67"
               object path "/org/freedesktop/NetworkManager/AccessPoint/66"
               object path "/org/freedesktop/NetworkManager/AccessPoint/15"
               object path "/org/freedesktop/NetworkManager/AccessPoint/16"
               object path "/org/freedesktop/NetworkManager/AccessPoint/17"
               object path "/org/freedesktop/NetworkManager/AccessPoint/19"
               object path "/org/freedesktop/NetworkManager/AccessPoint/50"
               object path "/org/freedesktop/NetworkManager/AccessPoint/30"
               object path "/org/freedesktop/NetworkManager/AccessPoint/51"
               object path "/org/freedesktop/NetworkManager/AccessPoint/33"
               object path "/org/freedesktop/NetworkManager/AccessPoint/55"
               object path "/org/freedesktop/NetworkManager/AccessPoint/39"
               object path "/org/freedesktop/NetworkManager/AccessPoint/58"
               object path "/org/freedesktop/NetworkManager/AccessPoint/59"
               object path "/org/freedesktop/NetworkManager/AccessPoint/57"
               object path "/org/freedesktop/NetworkManager/AccessPoint/42"
            ]
      )
   ]
   array [
   ]

<this repeats about 5 times, then goes back to outputting the first set of messages>

This command, run as a regular user, generates about 140 lines per second. If I run it with sudo, the NetworkManager information is a lot more verbose and generates about 15,000 (!) lines per second.

The issue stops as soon as I log out and does not come back even if I log back in. It only occurs when resuming from suspend or stopping/restarting NetworkManager while logged in.

Any ideas? What other troubleshooting steps can I take?

Last edited by heystove (2017-01-15 19:11:57)

Offline

#2 2017-01-14 21:23:37

heystove
Member
Registered: 2014-02-06
Posts: 14

Re: [SOLVED] NetworkManager floods dbus, causing high CPU

I just tried a suspend & resume from my desktop (running Arch with a nearly identical config) and I can not replicate the issue. It should be noted that the desktop uses a wired connection and wifi is disabled on the machine.

Offline

Board footer

Powered by FluxBB