indicator-power-service is a lightly busy all the time

Bug #1221871 reported by Colin Ian King
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
indicator-power
Fix Released
High
Charles Kerr
indicator-power (Ubuntu)
Fix Released
High
Unassigned

Bug Description

In a vain attempt to reduce power on these phone devices I noticed that indicator-power-service is using just under 1% of one CPU all the time.

 CPU usage:
  PID Process USR% SYS% TOTAL%
  1358 indicator-power-serv 0.05 0.04 0.08 (very light load)

It seems to be waiting on poll() on a couple of threads which cumulatively add up to about 1.68 wakeups a second over a 1 hour analysis:

Top polling system calls:

PID
  1369 indicator-power-serv poll 1.3462 polls/sec
  1358 indicator-power-serv poll 0.3376 polls/sec
 Total 1.6838 polls/sec

This contributes to a bunch of context switching by these threads:

Context Switches:
  PID Process Voluntary Involuntary Total
                             Ctxt Sw/Sec Ctxt Sw/Sec Ctxt Sw/Sec
  1369 indicator-power-serv 10.75 0.15 10.90 (moderate)
  1358 indicator-power-serv 3.53 0.07 3.60 (low)
  1372 indicator-power-serv 0.00 0.00 0.00 (idle)
 Total 14.29 0.22 14.50

[ See the attached log, launchpad formatting sucks ]

I also observed a couple of brk() calls, and a small amount of heap growth which may indicate it has a small memory leak, but I am speculating on this.

Attached is a full report from a 1 hour of monitoring indicator-power-service for reference.

Related branches

Revision history for this message
Colin Ian King (colin-king) wrote :
description: updated
description: updated
tags: added: mobile-power-consumption
no longer affects: touch-preview-images
Changed in indicator-power:
assignee: nobody → Charles Kerr (charlesk)
importance: Undecided → High
status: New → Confirmed
Changed in indicator-power (Ubuntu):
importance: Undecided → High
status: New → Triaged
Revision history for this message
Charles Kerr (charlesk) wrote :
Revision history for this message
Charles Kerr (charlesk) wrote :
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:indicator-power at revision 214, scheduled for release in indicator-power, milestone Unknown

Changed in indicator-power:
status: Confirmed → Fix Committed
Revision history for this message
Colin Ian King (colin-king) wrote :

@Charles,

1. Is there a .deb I can test to verify this?
2. the i386 latest build of heath-check now does system call tracing correctly, so that may be helpful for checking the fix.

Colin

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package indicator-power - 12.10.6+14.04.20131125-0ubuntu1

---------------
indicator-power (12.10.6+14.04.20131125-0ubuntu1) trusty; urgency=low

  [ Charles Kerr ]
  * We really only need to keep a handful of properties up-to-date for
    each upower device. Given that upower requires us to refetch all
    properties with GetAll whenever it signals that it's changed, we
    really don't need to keep bus proxies alive for each device.
    Removing the autogenerated proxy code and just using a couple of the
    direct GDBusConnection API calls cuts out some unnecessary overhead
    according to health-check. See the before & after profile logs
    attached to the ticket. (LP: #1221871)
  * fix a minor memory leak that was caused by treating the variant
    returned by g_icon_serialize() as floating.

  [ Ted Gould ]
  * Switching DBus service to an Upstart Job. (LP: #1185565)

  [ Nick Dedekind ]
  * Removed Label from brightness slider. (LP: #1240756)

  [ Ubuntu daily release ]
  * Automatic snapshot from revision 215
 -- Ubuntu daily release <email address hidden> Mon, 25 Nov 2013 03:55:08 +0000

Changed in indicator-power (Ubuntu):
status: Triaged → Fix Released
Charles Kerr (charlesk)
Changed in indicator-power:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.