Still a problem, now on Unity8 in zesty desktop. An idle desktop spins
the CPU constantly:
$ sudo strace -p `pidof unity8`
...
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25901, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\6\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 4) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\6\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 1) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25903, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25905, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25907, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\6\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 2) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25909, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 0) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\6\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25911, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25913, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\6\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 0) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25915, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 0) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\6\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25917, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25919, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25921, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 0) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\f\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25923, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25925, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
futex(0x55a7fefd1e8c, FUTEX_WAIT_PRIVATE, 25927, NULL) = 0
futex(0x55a7fefd1e60, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 0) = 1 ([{fd=4, revents=POLLIN}])
read(4, "\f\0\0\0\0\0\0\0", 16) = 8
poll([{fd=4, events=POLLIN}, {fd=42, events=POLLIN}, {fd=44, events=POLLIN},
{fd=60, events=POLLIN}, {fd=68, events=POLLIN}, {fd=80, events=POLLIN}, {fd=82,
events=POLLIN}, {fd=84, events=POLLIN}, {fd=86, events=POLLIN}, {fd=88,
events=POLLIN}], 10, 5) = 0 (Timeout)
** Summary changed:
- unity8 process using CPU when the phone is idle
+ Unity8 wakes up the CPU continuously even when idle
** Changed in: unity8 (Ubuntu)
Importance: Undecided => Medium
** Changed in: unity8 (Ubuntu)
Importance: Medium => High
** Tags added: unity8-desktop
--
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/1479250
Title:
Unity8 wakes up the CPU continuously even when idle
Status in QtMir:
Triaged
Status in The Ubuntu Power Consumption Project:
New
Status in qtmir package in Ubuntu:
Triaged
Status in unity8 package in Ubuntu:
New
Bug description:
top reports the unity8 process is consuming about 1% CPU even when the
phone is idle (screen on):
11688 phablet 20 0 482184 101352 44872 S 1.0 5.4 0:37.10
unity8
This makes unity8 the top consumer of CPU. 1% on modern CPUs like you
find in phones is actually a very large amount of work going on (~10
million clock ticks spent executing instructions per second on a 1GHz
core).
$ system-image-cli -i
current build number: 272
device name: mako
channel: ubuntu-touch/devel-proposed/ubuntu
last update: 2015-07-29 05:53:01
version version: 272
version ubuntu: 20150729
version device: 20150708
version custom: 20150729
Running eventstat shows this CPU time is being used in 5 events per
second:
Event/s PID Task Init Function Callback
36.36 0 [swapper/0] hrtimer_start_range_ns tick_sched_timer
5.05 11688 unity8 hrtimer_start_range_ns hrtimer_wakeup
So it sounds like QtMir's frame dropper is the culprit.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qtmir/+bug/1479250/+subscriptions
--
Mailing list: https://launchpad.net/~touch-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help : https://help.launchpad.net/ListHelp