Thanks. I see only few driver using wake_lock, so maybe it is: ./drivers/input/evdev.c: wake_lock_init(&client->wake_lock, WAKE_LOCK_SUSPEND, "evdev"); because my application causes input events.
Showing name count expire_count wake_count active_since total_time sleep_time max_time last_change "PowerManagerService" 6 0 0 0 12329155095 0 6595255691 135341930515 "KeyEvents" 4 0 0 0 196387699 0 117465540 134877866201 "evdev" 0 0 0 0 0 0 0 0 "radio-interface" 1 0 0 0 1000892610 0 1000892610 67683891432 "evdev" 0 0 0 0 0 0 0 0 "alarm_rtc" 0 0 0 0 0 0 0 0 "alarm" 0 0 0 0 0 0 0 0 "unknown_wakeups" 0 0 0 0 0 0 0 0 "deleted_wake_locks" 0 0 0 0 0 0 0 0 "main" 1 0 0 163889201251 163889201251 0 163889201251 230000017 "evdev" 1 1 0 0 4998200305 0 4998200305 129641814194 Each time that the system tried to suspend, it aborted and then I see in the wakeups: "PowerManagerService" 11 0 0 0 18525292659 0 6595255691 329246484660 "KeyEvents" 12 0 0 0 356830782 0 117465540 327528918500 "radio-interface" 1 0 0 0 1000892610 0 1000892610 67683891432 "evdev" 0 0 0 0 0 0 0 0 "alarm_rtc" 0 0 0 0 0 0 0 0 "alarm" 0 0 0 0 0 0 0 0 "unknown_wakeups" 0 0 0 0 0 0 0 0 "deleted_wake_locks" 0 0 0 0 0 0 0 0 "main" 1 0 0 331048659713 331048659713 0 331048659713 230000017 "evdev" 1 1 0 0 4998200305 0 4998200305 129641814194 "evdev" 1 1 0 0 4996976308 0 4996976308 195603038191 "evdev" 1 1 0 0 4996339691 0 4996339691 261683674808 "evdev" 1 0 0 3772348000 3772348000 0 3772348000 327506362499 Does this mean evdev leaking locks? On Sun, Apr 4, 2010 at 2:46 PM, Dianne Hackborn <[email protected]> wrote: > I guess I don't understand what you are asking. Wakelocks keep the system > from going to sleep. If you want it to go to sleep, but for some reason it > isn't, then you need to find out who else is holding a wake lock to keep it > awake. You can't use a wake lock to force it to go to sleep. > There are many drivers that will acquire wake locks themselves at various > points to make sure the system continues running long enough to process > their work -- for example when receiving data over the network. I don't > know whether or not the serial driver does this. > > On Sat, Apr 3, 2010 at 11:27 PM, Jebediah Huang <[email protected]> > wrote: >> >> I don't want it to keep the CPU running. I want the system to suspend >> at that point even if there's IO on the serial port. Do I have to add >> wakelocks to the app to achieve that? >> >> On Sun, Apr 4, 2010 at 2:23 PM, Dianne Hackborn <[email protected]> >> wrote: >> > The program needs to hold a partial wake lock during the time it needs >> > to >> > keep the CPU running. >> > >> > On Sat, Apr 3, 2010 at 9:03 PM, Jebediah Huang >> > <[email protected]> >> > wrote: >> >> >> >> I added external application that reads some data from serial port. >> >> When Android suspend, it says: >> >> <6>[ 757.743150] request_suspend_state: sleep (0->3) at 757743750809 >> >> (1970-01-01 00:12:37.743740962 UTC) >> >> <6>[ 758.220460] PM: Syncing filesystems ... done. >> >> <4>[ 758.226651] Freezing user space processes ... >> >> <3>[ 758.235448] Freezing of user space aborted >> >> <3>[ 758.239823] serialfmread >> >> >> >> In logcat, after resume: >> >> >> >> I//system/bin/serialfmread( 690): serialfmread: done doing read >> >> I/logwrapper( 690): /system/bin/serialfmread terminated by exit(0) >> >> >> >> and then it restart my application. My application is input device >> >> reader generating input event and it does not touch wakelocks. Is >> >> there something I must do to my application to make it behave >> >> correctly with Android wakelock? >> >> >> >> Jeb >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> >> Groups >> >> "android-platform" group. >> >> To post to this group, send email to [email protected]. >> >> To unsubscribe from this group, send email to >> >> [email protected]. >> >> For more options, visit this group at >> >> http://groups.google.com/group/android-platform?hl=en. >> >> >> > >> > >> > >> > -- >> > Dianne Hackborn >> > Android framework engineer >> > [email protected] >> > >> > Note: please don't send private questions to me, as I don't have time to >> > provide private support, and so won't reply to such e-mails. All such >> > questions should be posted on public forums, where I and others can see >> > and >> > answer them. >> > >> > -- >> > unsubscribe: [email protected] >> > website: http://groups.google.com/group/android-porting >> > > > > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. > > -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting To unsubscribe, reply using "remove me" as the subject.
