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
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1421455
Title:
Slow wake up time on physical power button pressed
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/powerd/+bug/1421455/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs