On Mon, 26 Feb 2007, Oliver Neukum wrote: > If you want to specify it in milliseconds, I have no objections. Other times > are also given in those units.
Seconds are easier, except in this one case where you want a value less than 1 second. I'm inclined not to worry about it and keep things simple. > > If you have told the kernel you want the device not to autosuspend, there > > is no reason for the kernel to remember an autosuspend delay. If you then > > want to tell the kernel it's okay for the device to autosuspend again, you > > can go ahead and re-specify the delay you want to use. The kernel > > shouldn't bother to remember the old delay. > > a) The kernel will (or rather should) export its oppinion whether a device > should be suspended (eg. from the blacklist or set by a driver) Be careful in your choice of words. Do you mean "suspended" or "autosuspended"? The kernel basically has no choice about whether a device should be allowed to suspend. It _must_ be allowed; otherwise swsusp won't work. The kernel's opinion about whether a device should be autosuspended _is_ exported through the power/autosuspend attribute. Values > 0 mean yes (or >= 0 after I change it), other values mean no. > b) The security implications are different In what way? Why are you so concerned about security implications? Almost all of the writable files in sysfs are writable only by the superuser; this doesn't have to be any different. > > I don't understand your point. Preventing a device from autosuspending > > isn't a denial-of-service, although it might be a denial-of-power-savings. > > _Allowing_ it is, as we have buggy devices which crash. Yes. That's what PAM is for, right? > > > Thus a sequence of > > > a) read old delay > > > b) request 0 delay > > > c) restore old delay > > > > > > should suspend the device if it is not doing IO. > > > > Yes, except that both you and Greg have requested that step c) should > > wake up the device and restart the timer using the reinstated old delay. > > Of course, if you stop after step b) the effect will be to suspend the > > device as soon as it is no longer in use. > > I am complicated. I have conditional wishes. > I want step (c) to wake up the device only if on/off is included in that > value. > I can't speak for Greg, though. Now you're asking to have two values included in a single sysfs write (on/off and delay). That's a no-no. :-) > > By now I'm no longer sure what you're asking for. :-) > > - separate on/off switch What good is a separate switch? What's wrong with combining it along with the delay? > - allow 0 delay Okay. > - don't do an immediate suspend independent of autosuspend Why not? In extreme cases the user can force an immediate suspend by doing suspend-to-RAM anyway. This merely preserves the capability we are about to lose when the power/state attribute disappears completely. > > Add a new power/suspended attribute. Writing 1 will always try to suspend > > immediately (_not_ an autosuspend!) and writing 0 will always resume > > immediately (but will start the autosuspend timer). > > This is problematic, as it is a totally new code path. No it isn't. It's the code path used for traditional suspend-to-{RAM,disk} and also used by power/state. > > BTW, note that an autosuspend request is different from a plain old > > suspend request. Autosuspend will fail if an interface requires > > remote-wakeup capability but remote wakeup is disabled, whereas a regular > > suspend won't fail. > > Yes, that too. It makes that even more asymmetric. We wake up on demand > in only one direction. I don't know what you mean. We _always_ wake up on demand. What's asymmetrical about that? > If you want such an interface I'd suggest that it mean > that a device stay suspended until the user says so. No. One more time: WE ALWAYS WAKE UP ON DEMAND! If the user really wants a device to suspend and not wake up, he can take more drastic action. Just don't send it any more demands. Unbind it from its driver. Unplug it -- and that would save even more power! Alan Stern ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel