desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #65592
[Bug 906916] Re: gwibber-service has a child that polls at 10Hz which is causing a lot of wakeup events
This bug was fixed in the package gwibber - 3.3.2-0ubuntu1
---------------
gwibber (3.3.2-0ubuntu1) precise; urgency=low
* New upstream release
- Drop the usage of threading.Thread and ensure the multiprocessing.Pool
is closed after the job is complete, this greatly reduces the system
load and stops the aggressive polling multiprocessing worker pools
used (LP: #906916)
- ported to libdee API changes
- ported to libunity API changes
* debian/gwibber-service.pyinstall, debian/gwibber-service.install
- Use a .pyinstall file to handle instaling stuff so we don't have to
copy custom.py
* debian/rules
- drop the copy of custom.py, it gets installed with .pyinstall file now
* debian/control
- bump build depends for libunity-dev and libdee-dev
- renamed build dep to gtkspell-3-dev
-- Ken VanDine <ken.vandine@xxxxxxxxxxxxx> Fri, 13 Jan 2012 12:38:23 +0100
** Changed in: gwibber (Ubuntu)
Status: Triaged => Fix Released
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gwibber in Ubuntu.
https://bugs.launchpad.net/bugs/906916
Title:
gwibber-service has a child that polls at 10Hz which is causing a lot
of wakeup events
Status in “gwibber” package in Ubuntu:
Fix Released
Bug description:
The gwibber-service forks off a child process that runs a polling loop
constantly at 10Hz which causes a lot of wakeups on an idle system.
On my Lenovo X220i this constitutes 7% of the wakeups on a cleanly
installed system when running idle. Extraneous wakeups waste power
and reduce battery life.
You can see the offending task using strace:
sudo strace -f /usr/bin/gwibber-service
and after about 8 or so seconds you can then observe the select(), wait() polling loop:
...
[pid 11711] select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
[pid 11711] wait4(11710, 0x7f3991defb8c, WNOHANG, NULL) = 0
[pid 11711] wait4(11709, 0x7f3991defb8c, WNOHANG, NULL) = 0
[pid 11711] select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
[pid 11711] wait4(11710, 0x7f3991defb8c, WNOHANG, NULL) = 0
[pid 11711] wait4(11709, 0x7f3991defb8c, WNOHANG, NULL) = 0
[pid 11711] select(0, NULL, NULL, NULL, {0, 100000}) = 0 (Timeout)
This is overkill in my opinion and any code that sits in a tight
polling loop like this need re-engineering to be more power friendly.
ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: gwibber-service 3.2.1-0ubuntu1.3
ProcVersionSignature: Ubuntu 3.0.0-14.23-generic 3.0.9
Uname: Linux 3.0.0-14-generic x86_64
ApportVersion: 1.23-0ubuntu4
Architecture: amd64
Date: Tue Dec 20 14:40:04 2011
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
PackageArchitecture: all
SourcePackage: gwibber
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gwibber/+bug/906916/+subscriptions
References