← Back to team overview

touch-packages team mailing list archive

[Bug 1421455] Re: Slow wake up time on physical power button pressed

 

Looking at the strace output one can see that powerd gets the power
button press notification, processes it, and then nothing happens for
half a second:


[pid   949] 1430318963.039809 send(3, "<31>Apr 29 16:49:23 powerd[949]: exiting suspend", 48, MSG_NOSIGNAL) = 48
[pid   949] 1430318963.040868 gettimeofday({1430318963, 40921}, NULL) = 0
[pid   949] 1430318963.041289 send(3, "<31>Apr 29 16:49:23 powerd[949]: libsuspend: exit_suspend.", 58, MSG_NOSIGNAL) = 58
[pid   949] 1430318963.042623 open("/sys/power/state", O_WRONLY) = 14
[pid   949] 1430318963.043483 write(14</sys/power/state>, "on", 2 <unfinished ...>

<Note: 508 milliseconds delay>

[pid  8256] 1430318963.515663 <... futex resumed> ) = -1 ETIMEDOUT (Connection timed out)
[pid  8256] 1430318963.515862 clock_gettime(CLOCK_MONOTONIC, {27280, 493365943}) = 0
[pid  8256] 1430318963.517005 clock_gettime(CLOCK_MONOTONIC, {27280, 493965482}) = 0
[pid  8256] 1430318963.518207 futex(0xaa430c, FUTEX_WAIT, 30, {14, 999399518} <unfinished ...>
[pid   971] 1430318963.587966 <... read resumed> "a", 1) = 1
[pid   971] 1430318963.588263 close(7</sys/power/wait_for_fb_wake>) = 0
[pid   971] 1430318963.589699 open("/sys/power/wait_for_fb_sleep", O_RDONLY) = 7
[pid   971] 1430318963.590953 read(7</sys/power/wait_for_fb_sleep>,  <unfinished ...>
[pid   949] 1430318963.592034 <... write resumed> ) = 2


If you look close enough you can see that pid 949 does a blocking write of the string "on" to /sys/power/state, and this syscall comes back half a second later. Half a second. Exactly the missing time we are looking for.


So I pressed the power button to turn off the screen, waited a couple of seconds to allow the system go to sleep, and did the following:


root@ubuntu-phablet:~# time echo "on" > /sys/power/state

real    0m0.545s
user    0m0.000s
sys     0m0.000s


Something in the kernel seems to take roughly half a second to wake up.

I looked at the Documentation/power/states.txt file of the Linux kernel
and was am a bit confused: There should be only four valid values one
can write to /sys/power/state, namely "mem", "standby", "freeze" and
"disk". On the bq phone the file contains "mem disk", so only those two
states are available. I found out that "on" seems to be an accepted
value on Android kernels only.

So the root of the problem my lie in kernel land at the end.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to powerd in Ubuntu.
https://bugs.launchpad.net/bugs/1421455

Title:
  Slow wake up time on physical power button pressed

Status in powerd package in Ubuntu:
  New
Status in unity8 package in Ubuntu:
  Incomplete

Bug description:
  Device: bq Aquaris E4.5 running: Stable #17

  When pressing on physical power button on device to wake it up
  sometime it even takes up to 2-3 secs before anything appears on the
  screen. This time wary but its hard to tell then its shorter and when
  is longer.

  This is not so bad on nexus4.

  
  Should you need more info, I'm happy to help.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/powerd/+bug/1421455/+subscriptions


References