touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #23810
[Bug 1377854] [NEW] idle phone; polling with 85-195 ms timeouts on poll, possible unneccessary wakeups
Public bug reported:
While trying to figure out what's keeping the phone "busy" when idle
(trying to save power), I noticed that unity8 is performing a lot of
frequent poll() system calls with timeouts of 85-195 ms and it times out
on these the majority of times. Wakeups keep a phone busy, so are
these timeout polls() necessary?
On mako, with a idle phone in the period between inactivity before the
screen blanks I observe:
root@ubuntu-phablet:~# strace -p $(pidof unity8) -e poll
Process 4195 attached
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 98) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 199) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 196) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 195) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 195) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 94) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 89) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 195) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 196) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 188) = 0 (Timeout)
So one can see the poll() in these calls is ~90-195 ms, causing ~5-6
wakeups a second which are poll timeouts. Since no other system calls
are being called, it looks like an inner loop re-polls again for another
timeout to occur again. Perhaps the timeout is too low?
Avoiding excessive wakeups does save power. In this case, it's not much,
but this is the largest cause of wakeups now on an idle phone.
** Affects: unity8 (Ubuntu)
Importance: Low
Status: New
** Changed in: unity8 (Ubuntu)
Importance: Undecided => Low
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to unity8 in Ubuntu.
https://bugs.launchpad.net/bugs/1377854
Title:
idle phone; polling with 85-195 ms timeouts on poll, possible
unneccessary wakeups
Status in “unity8” package in Ubuntu:
New
Bug description:
While trying to figure out what's keeping the phone "busy" when idle
(trying to save power), I noticed that unity8 is performing a lot of
frequent poll() system calls with timeouts of 85-195 ms and it times
out on these the majority of times. Wakeups keep a phone busy, so
are these timeout polls() necessary?
On mako, with a idle phone in the period between inactivity before the
screen blanks I observe:
root@ubuntu-phablet:~# strace -p $(pidof unity8) -e poll
Process 4195 attached
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 98) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 199) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 196) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 195) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 195) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 94) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 89) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 195) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 196) = 0 (Timeout)
poll([{fd=3, events=POLLIN}, {fd=40, events=POLLIN}, {fd=41, events=POLLIN}, {fd=46, events=POLLIN}, {fd=61, events=POLLIN}, {fd=71, events=POLLIN}, {fd=72, events=POLLIN}], 7, 188) = 0 (Timeout)
So one can see the poll() in these calls is ~90-195 ms, causing ~5-6
wakeups a second which are poll timeouts. Since no other system calls
are being called, it looks like an inner loop re-polls again for
another timeout to occur again. Perhaps the timeout is too low?
Avoiding excessive wakeups does save power. In this case, it's not
much, but this is the largest cause of wakeups now on an idle phone.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1377854/+subscriptions
Follow ups
References