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

Reply via email to