Active Topics

 


Reply
Thread Tools
khalid's Avatar
Posts: 69 | Thanked: 12 times | Joined on Apr 2007 @ Colorado, USA
#81
I have been dealing with low battery life for quite some time. I even replaced the battery thinking my battery was simply not holding charge and nothing changed. For the last few months I started paying closer attention to when battery life drops and I have come to some definite conclusions. I have been using advanced-power applet to monitor battery. A few times I managed to notice battery percentage dropping fast and noticed that the temperature reported was in 90s. Normally the temp hovers around 70. "top" shows CPU mostly idle. From there I concluded CPU was spending lot of time spinning in interrupt handler since that time will not show up in top and CPU spinning in interrupt handler would explain rise in temperature. I then started monitoring interrupt counts and noticed that when I connect wifi, the wifi driver plumbs the interrupt into interrupt table and this interrupt is normally unplumbed when I disconnect. When my battery life was dropping fast and CPU temp was rising, I noticed that wifi interrupt had not been unplumbed even though I was no longer connected and interrupt count was going up. So for the last few weeks I have gotten into the habit of putting n800 in offline mode instead of just disconnecting from wifi. This forces wifi driver to be unloaded and interrupt unplumbed. I am seeing pretty good battery life since then. I still had two episodes of battery life dropping faster than I expected but nothing like what it used to be.

If you are seeing poor battery life, try putting n800 in offline mode every time you disconnect from wifi and see if it improves battery life.
__________________
N800 running 5.2008.43-7
Debian Developer
 
Straycat's Avatar
Posts: 218 | Thanked: 59 times | Joined on Feb 2010 @ spain
#82
Originally Posted by khalid View Post
... in offline mode every time you disconnect from wifi and see if it improves battery life.
That's what I use to do but my battery don't last far than 2 days in total idle mode. And when I come to play with suddenly drops near zero.
 
khalid's Avatar
Posts: 69 | Thanked: 12 times | Joined on Apr 2007 @ Colorado, USA
#83
Originally Posted by Straycat View Post
That's what I use to do but my battery don't last far than 2 days in total idle mode. And when I come to play with suddenly drops near zero.
Last night I noticed my N800 was fairly warm and it was in offline mode. I looked at the list of modules loaded and "cx3110x" was still loaded. So going into offline mode does not necessarily unload cx3110x module. I am quite certain after all the experiments I did that cx3110x is the culprit behind battery level dropping fast. Right way to fix this would be to look through the source code and find the bug that causes it to leave interrupt plumbed and spurious interrupts coming in at high rate.

I have written a trivial script to unload and reload cx3110x module. I will try that for a few days after every wifi disconnect and see how that goes. It is lot more inconvenient to do this than going into offline mode though. Here is the script:

#!/bin/sh
sudo rmmod cx3110x
sleep 1
sudo insmod /mnt/initfs/lib/modules/2.6.21-omap1/cx3110x.ko
__________________
N800 running 5.2008.43-7
Debian Developer
 
Posts: 2,802 | Thanked: 4,491 times | Joined on Nov 2007
#84
Originally Posted by khalid View Post
I have written a trivial script to unload and reload cx3110x module.
Note that if you do that you typically have to restart wlancond as well.

BTW, are you using manually configured IP settings? If so have a look at bugs 3992/6615.
 
khalid's Avatar
Posts: 69 | Thanked: 12 times | Joined on Apr 2007 @ Colorado, USA
#85
Originally Posted by lma View Post
Note that if you do that you typically have to restart wlancond as well.

BTW, are you using manually configured IP settings? If so have a look at bugs 3992/6615.
Wi-fi no longer connects after unloading and loading cx3110x. So I added code to stop wlancond before unloading cx3110x and start it again after reloading cx3110x. Wi-fi still does not connect. Looking through dmesg, cx3110x reports a different mac address than the original one which causes my AP to reject any connection since it has mac address access control enabled. If I change the mac address back to original one using ifconfig, wifi starts connecting again. Any one have any idea why it loses mac address if cx3110x is reloaded?

I am using DHCP for wifi.
__________________
N800 running 5.2008.43-7
Debian Developer
 
Reply


 
Forum Jump


All times are GMT. The time now is 19:17.