View Single Post
Posts: 1,680 | Thanked: 3,685 times | Joined on Jan 2011
#11
Originally Posted by NotTheMessiah View Post
Ok, so after playing around some more i'm still having the same problem. It still happens when in offline mode, and it still happens with the sim removed. The device has now since been reflashed a further two times and is currently running PR1.2 as i had read about severe battery drain in PR1.3 but this has not helped.


Here is powertop's output when the phone is both offline and idle...
Code:
Powertop 1.13.3 
status: Unknown job: pmtrackerdaemon 
Sleeping for 11 seconds before sampling 
Collecting data for 30 seconds 
Sample interval was 00m 30s 16693us 

C# | Ratio | Avg/dura | Frequency | Ratio 
--------+--------+----------+-----------+--------+ 
C0 | 1.9% | | 600 MHz | 1.8% | 
C1 | 1.0% | 4.8ms | 550 MHz | 0.0% | 
C2 | 13.2% | 22.3ms | 500 MHz | 1.3% | 
C3 | 4.8% | 89.2ms | 250 MHz | 96.8% | 
C4 | 79.1% | 1825.3ms | 

IRQ# | Activity | Type | Name 
--------+------------+----------------+--------------------------- 
61 | 204 | INTC | i2c_omap 
37 | 197 | INTC | gp 
56 | 174 | INTC | i2c_omap 
11 | 123 | INTC | prcm 
57 | 104 | INTC | i2c_omap 
86 | 35 | INTC | mmc1 
273 | 23 | GPIO | kb_lock 
21 | 18 | INTC | SGX 
12 | 4 | INTC | DMA 

PID# | Activity | Name | Function Entry (Expire) 
--------+------------+----------------+--------------------------- 
0 | 130 | <kernel core> | tick_nohz_restart_sched_tick (tick_sched_timer) 
37 | 29D| awk | cpufreq_governor_dbs (delayed_work_timer_fn) 
1691 | 19 | osso-xterm | schedule_hrtimeout_range (hrtimer_wakeup) 
731 | 16 | mce | schedule_hrtimeout_range (hrtimer_wakeup) 
0 | 14 | <kernel core> | hrtimer_start (tick_sched_timer) 
696 | 10 | bme_RX-51 | sys_timer_settime (posix_timer_fn) 
509 | 7 | mmcqd | schedule_timeout (process_timeout) 
696 | 6 | bme_RX-51 | schedule_timeout (process_timeout) 
509 | 4 | mmcqd | queue_delayed_work (delayed_work_timer_fn) 
685 | 4 | dsme | __enqueue_rt_entity (sched_rt_period_timer) 
814 | 3 | Xorg | hrtimer_start (it_real_fn) 
1 | 3D| <kernel core> | queue_delayed_work (delayed_work_timer_fn) 
787 | 2 | sgx_perf | queue_delayed_work (delayed_work_timer_fn) 
696 | 2 | bme_RX-51 | sys_timer_settime (posix_timer_fn) 
696 | 2 | bme_RX-51 | do_nanosleep (hrtimer_wakeup) 
685 | 2 | dsme | do_nanosleep (hrtimer_wakeup) 
1441 | 2 | browserd | futex_wait (hrtimer_wakeup) 
0 | 2 | <kernel core> | gpio_sw_irq_handler (gpio_sw_timer) 
731 | 2 | mce | schedule_timeout (process_timeout) 
731 | 2 | mce | schedule_timeout (process_timeout) 
29 | 1 | mount | setup_wb_timer (wb_timer_fn) 
13 | 1 | pdflush | blk_plug_device (blk_unplug_timeout) 
509 | 1 | mmcqd | schedule_timeout (process_timeout) 
814 | 1 | Xorg | queue_delayed_work (delayed_work_timer_fn) 
1700 | 1 | powertop | do_nanosleep (hrtimer_wakeup) 

Power domain activity breakdown 
Domain | % of time spent in states 
--------+---------+---------+---------+---------+---------- 
usbhost |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 
sgx |OFF: 96%|RET: 0%|INA: 0%| ON: 3%| now:(OFF) 
per |OFF: 83%|RET: 13%|INA: 0%| ON: 3%| now:(ON) 
dss |OFF: 85%|RET: 0%|INA: 0%| ON: 14%| now:(ON) 
cam |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 
core |OFF: 79%|RET: 1%|INA: 12%| ON: 7%| now:(ON) 
neon |OFF: 79%|RET: 4%|INA: 13%| ON: 3%| now:(ON) 
mpu |OFF: 79%|RET: 4%|INA: 13%| ON: 3%| now:(ON) 
iva2 |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 

Clock activity breakdown at end of period 
Domain | Active clocks 
--------+---------------+---------------+------------------ 
core | SDRC | HSOTGUSB_IDLE | OMAPCTRL 
| MAILBOXES | 
wkup | GPT1 | 32KSYNC | GPIO1 
| WDT1 | 
ckgen | CORE | PERI | 96M 
| 48M | 12M | 54M 
| EMU_CORE | 
dss | DSS_IDLE 
per | GPIO2 | GPIO3 | GPIO4 
| GPIO5 | GPIO6 | 

Total wakeups 1148, 38.3/s | IRQ 882, 29.4/s | Timers 266, 8.9/s 
HW wakeups 123, 4.1/s | Real gp_timers expired 197, 6.6/s

Here is powertop's output when the phone is online and idle...
Code:
Powertop 1.13.3 
status: Unknown job: pmtrackerdaemon 
Sleeping for 11 seconds before sampling 
Collecting data for 30 seconds 
Sample interval was 00m 30s 32440us 

C# | Ratio | Avg/dura | Frequency | Ratio 
--------+--------+----------+-----------+--------+ 
C0 | 0.9% | | 600 MHz | 0.0% | 
C1 | 0.0% | 0.3ms | 550 MHz | 0.0% | 
C2 | 0.9% | 4.9ms | 500 MHz | 1.3% | 
C3 | 5.0% | 88.3ms | 250 MHz | 98.7% | 
C4 | 93.2% | 1748.8ms | 

IRQ# | Activity | Type | Name 
--------+------------+----------------+--------------------------- 
56 | 269 | INTC | i2c_omap 
37 | 75 | INTC | gp 
57 | 58 | INTC | i2c_omap 
11 | 49 | INTC | prcm 
86 | 31 | INTC | mmc1 
21 | 9 | INTC | SGX 
12 | 4 | INTC | DMA 

PID# | Activity | Name | Function Entry (Expire) 
--------+------------+----------------+--------------------------- 
0 | 33 | <kernel core> | tick_nohz_restart_sched_tick (tick_sched_timer) 
1691 | 18 | osso-xterm | schedule_hrtimeout_range (hrtimer_wakeup) 
37 | 13D| awk | cpufreq_governor_dbs (delayed_work_timer_fn) 
696 | 13 | bme_RX-51 | sys_timer_settime (posix_timer_fn) 
696 | 6 | bme_RX-51 | sys_timer_settime (posix_timer_fn) 
696 | 6 | bme_RX-51 | schedule_timeout (process_timeout) 
509 | 5 | mmcqd | schedule_timeout (process_timeout) 
509 | 3 | mmcqd | queue_delayed_work (delayed_work_timer_fn) 
0 | 3 | <kernel core> | hrtimer_start (tick_sched_timer) 
685 | 3 | dsme | do_nanosleep (hrtimer_wakeup) 
685 | 3 | dsme | __enqueue_rt_entity (sched_rt_period_timer) 
814 | 2 | Xorg | hrtimer_start (it_real_fn) 
787 | 2 | sgx_perf | queue_delayed_work (delayed_work_timer_fn) 
1 | 2D| <kernel core> | queue_delayed_work (delayed_work_timer_fn) 
696 | 2 | bme_RX-51 | do_nanosleep (hrtimer_wakeup) 
814 | 1 | Xorg | queue_delayed_work (delayed_work_timer_fn) 
1389 | 1 | Calendar | schedule_hrtimeout_range (hrtimer_wakeup) 
731 | 1 | mce | schedule_hrtimeout_range (hrtimer_wakeup) 
1441 | 1 | browserd | futex_wait (hrtimer_wakeup) 
1010 | 1 | iphbd | schedule_hrtimeout_range (hrtimer_wakeup) 
1719 | 1 | powertop | do_nanosleep (hrtimer_wakeup) 

Power domain activity breakdown 
Domain | % of time spent in states 
--------+---------+---------+---------+---------+---------- 
usbhost |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 
sgx |OFF: 97%|RET: 0%|INA: 0%| ON: 2%| now:(OFF) 
per |OFF: 97%|RET: 1%|INA: 0%| ON: 0%| now:(ON) 
dss |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 
cam |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 
core |OFF: 93%|RET: 2%|INA: 0%| ON: 3%| now:(ON) 
neon |OFF: 93%|RET: 4%|INA: 0%| ON: 0%| now:(ON) 
mpu |OFF: 93%|RET: 4%|INA: 0%| ON: 0%| now:(ON) 
iva2 |OFF: 100%|RET: 0%|INA: 0%| ON: 0%| now:(OFF) 

Clock activity breakdown at end of period 
Domain | Active clocks 
--------+---------------+---------------+------------------ 
core | SDRC | HSOTGUSB_IDLE | OMAPCTRL 
| MAILBOXES | 
wkup | GPT1 | 32KSYNC | GPIO1 
| WDT1 | 
ckgen | CORE | PERI | 96M 
| 48M | 12M | 54M 
| EMU_CORE | 
per | GPIO2 | GPIO3 | GPIO4 
| GPIO5 | GPIO6 | 

Total wakeups 615, 20.5/s | IRQ 495, 16.5/s | Timers 120, 4.0/s 
HW wakeups 49, 1.6/s | Real gp_timers expired 75, 2.5/s 
~ $
Looking at those it seems that the phone isn't doing much with the processor, at least not that it would seem to me on first inspection.

So i ran powerscript and found that even despite this low cpu usage there is very high current draw for idle mode!

Below is the current draw for offline mode with the sim in place still...
Note that the phone is idle when the number of events is shown as approx 60 to 70
Code:
Using I2C to read charge meter directly 
Sat Jan 7 16:46:58 GMT 2012 333mA 182 total events, 36.103 events/sec 
Sat Jan 7 16:47:03 GMT 2012 317mA 218 total events, 43.512 events/sec 
Sat Jan 7 16:47:08 GMT 2012 303mA 186 total events, 37.110 events/sec 
Sat Jan 7 16:47:13 GMT 2012 304mA 235 total events, 46.896 events/sec 
Sat Jan 7 16:47:18 GMT 2012 250mA 70 total events, 13.952 events/sec 
Sat Jan 7 16:47:23 GMT 2012 203mA 61 total events, 12.182 events/sec 
Sat Jan 7 16:47:28 GMT 2012 200mA 62 total events, 12.353 events/sec 
Sat Jan 7 16:47:33 GMT 2012 200mA 138 total events, 27.522 events/sec
And here again with the sim removed, same applies as above about the phone being idle.
Code:
Using I2C to read charge meter directly 
Sat Jan 7 16:55:05 GMT 2012 407mA 197 total events, 39.329 events/sec 
Sat Jan 7 16:55:10 GMT 2012 300mA 220 total events, 43.903 events/sec 
Sat Jan 7 16:55:15 GMT 2012 295mA 187 total events, 37.303 events/sec 
Sat Jan 7 16:55:20 GMT 2012 292mA 324 total events, 64.670 events/sec 
Sat Jan 7 16:55:25 GMT 2012 307mA 81 total events, 16.174 events/sec 
Sat Jan 7 16:55:30 GMT 2012 178mA 73 total events, 14.582 events/sec 
Sat Jan 7 16:55:35 GMT 2012 184mA 86 total events, 17.151 events/sec 
Sat Jan 7 16:55:40 GMT 2012 211mA 183 total events, 36.512 events/sec
drawing 180mA when idle is stupidly high, and these results must be accurate as well since the battery is lasting only ~7 hours in idle mode and this makes sense with the maths as 1221mAh (the max my battery charges to) divided by 180 gives us approx 6.7 hours battery life.

So given that, it looks to me like i have a hardware issue, some fault in the power circuit, maybe a bad voltage regulator or something, or at least some other kind of partial short.

Any ideas anyone? I'd love to be proven wrong about it being a hardware fault as i'm not quite ready to part with the device but 6 hours standby time is no good to anybody really!
Hey bro, I finally got over mny new year hangover! (heh).

Can you install 'pastebinit' from devel (or extras or somwhere) and then do this.

Followed by this (while connected to the net):

Code:
sudo dpkg --get-selections > afile.txt; pastebinit afile.txt
and finally this:

Code:
sudo lsmod > abfile.txt; pastebinit abfile.txt
Paste the links here.
__________________
N900: One of God's own prototypes. A high-powered mutant of some kind never even considered for mass production. Too weird to live, and too rare to die.