network-manager using 70%+ CPU on Nexus 4
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
network-manager (Ubuntu) |
Expired
|
High
|
Unassigned | ||
Saucy |
Won't Fix
|
High
|
Unassigned |
Bug Description
This morning after moving around between multiple buildings / wireless domains, NM is now using 70%+ CPU on my Nexus 4 (mako). I noticed this because the UI was being very slow to respond.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
958 root 20 0 104m 71m 4380 R 99.4 3.8 703:52.27 NetworkManager
strace doesn't show much interesting, so most of the CPU time seems to be spent in userspace.
# strace -ff -p 958
Process 958 attached with 4 threads
[pid 1230] restart_
[pid 1065] restart_
[pid 960] rt_sigtimedwait
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] gettimeofday(
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(7, {msg_name(0)=NULL, msg_iov(
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(7, {msg_name(0)=NULL, msg_iov(
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] inotify_
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(15, {msg_name(
[pid 958] stat64(
[pid 958] stat64(
[pid 958] stat64(
[pid 958] readlink(
[pid 958] stat64(
[pid 958] open("/
[pid 958] fstat64(20, {st_mode=
[pid 958] mmap2(NULL, 4096, PROT_READ|
[pid 958] read(20, "RFKILL_
[pid 958] read(20, "", 4096) = 0
[pid 958] close(20) = 0
[pid 958] munmap(0x43d05000, 4096) = 0
[pid 958] readlink(
[pid 958] open("/
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] sendmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] sendmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] sendmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] sendmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] sendmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] sendmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] recvmsg(18, {msg_name(
[pid 958] clock_gettime(
[pid 958] sendmsg(7, {msg_name(0)=NULL, msg_iov(
[pid 958] gettimeofday(
[pid 958] clock_gettime(
[pid 958] clock_gettime(
[pid 958] poll([{fd=4, events=POLLIN}, {fd=8, events=POLLIN}, {fd=10, events=POLLIN}, {fd=9, events=POLLIN}, {fd=5, events=
[pid 958] read(4, "\34\0\
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
[pid 958] recvmsg(5, {msg_name(
[pid 958] write(4, "\1\0\0\0\0\0\0\0", 8) = 8
A gdb backtrace shows:
(gdb) bt
#0 0x40b53a6e in g_slist_find ()
from /lib/arm-
#1 0x401cc5b6 in dbus_g_
message=
#2 dbus_g_
message=
#3 0x40255e3c in dbus_connection
from /lib/arm-
#4 0x401c8558 in message_
callback=
#5 0x40b3fa46 in g_main_
from /lib/arm-
#6 0x40b3fca6 in ?? () from /lib/arm-
#7 0x40b3fca6 in ?? () from /lib/arm-
stepping through this, the busy loop appears to be in dbus_g_
Changed in network-manager (Ubuntu): | |
importance: | Undecided → High |
no longer affects: | touch-preview-images |
Changed in network-manager (Ubuntu): | |
status: | New → Incomplete |
Some more info in the logs:
Jan 1 21:00:36 ubuntu-phablet NetworkManager[ 958]: <warn> could not mark modem as powered: (null) The name org.ofono was not provided by any .service files 958]: <warn> modem with path /ril_0 already exists, ignoring 958]: dbus_g_ error_get_ name: assertion 'error->code == DBUS_GERROR_ REMOTE_ EXCEPTION' failed 958]: <warn> could not mark modem as powered: (null) The name org.ofono was not provided by any .service files 958]: <warn> modem with path /ril_0 already exists, ignoring 958]: dbus_g_ error_get_ name: assertion 'error->code == DBUS_GERROR_ REMOTE_ EXCEPTION' failed
Jan 1 21:00:36 ubuntu-phablet NetworkManager[
Jan 1 21:00:36 ubuntu-phablet NetworkManager[
Jan 1 21:00:36 ubuntu-phablet NetworkManager[
Jan 1 21:00:36 ubuntu-phablet NetworkManager[
Jan 1 21:00:36 ubuntu-phablet NetworkManager[