On Monday 17 May 2010, Arve Hjønnevåg wrote: > 2010/5/16 Rafael J. Wysocki <rjw@xxxxxxx>: > > On Friday 14 May 2010, Arve Hjønnevåg wrote: > >> This patch series adds a suspend-block api that provides the same > >> functionality as the android wakelock api. This version has some > >> changes from, or requested by, Rafael. The most notable changes are: > >> - DEFINE_SUSPEND_BLOCKER and suspend_blocker_register have been added > >> for statically allocated suspend blockers. > >> - suspend_blocker_destroy is now called suspend_blocker_unregister > >> - The user space mandatory _INIT ioctl has been replaced with an > >> optional _SET_NAME ioctl. > >> > >> I kept the ack and reviewed by tags on two of the patches even though > >> there were a few cosmetic changes. > > > > I have one more comment, sorry for that. > > > > Namely, if /sys/power/policy is set to "opportunistic" and "mem" is written > > into /sys/power/state and there are no suspend blockers present except for > > the main blocker (and the blockers used only for statistics), the system won't > > be able to go out of an infinit suspend-resume loop (or at least it seems > > so from reading the code). > > > > I think we should prevent that from happening somehow. > > > > It should get out of that loop as soon as someone blocks suspend. If > someone is constantly aborting suspend without using a suspend blocker > it will be very inefficient, but it should still work. Well, the scenario I have in mind is the following. Someone wants to check the feature and simply writes "opportunistic" to /sys/power/policy and "mem" to /sys/power/state without any drivers or apps that use suspend blockers. How in that case is the system supposed to break out of the suspend-resume loop resulting from this? I don't see right now, because the main blocker is inactive, there are no other blockers that can be activated and it is next to impossible to write to /sys/power/state again. Rafael _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm