On Fri, 2004-10-29 at 23:01 -0400, Alan Stern wrote: > On Sat, 30 Oct 2004, Benjamin Herrenschmidt wrote: > > > > There's no need for "broadcast" or "global"; the only stuff > > > that needs to be resumed -- USB is no exception! -- is the > > > path from dev through dev->parent up to the root of that > > > particular subtree. > > > > Yes, yes, just bad wording, sorry. > > Just out of curiosity, what happens with something like software RAID, > where the swap device depends on having multiple physical devices awake? Then the whole tree covering all those devices would need to be woken up, which is why this is complicated and we can very well leave without partial tree suspend & resume for now. There may be need to add some knowledge of PM to the software RAID code even for the normal case though. I'm currently using special PM requests down the BIO queue to do PM on IDE, that's the best way to properly flush all outstanding requests & freeze the queue, but I haven't adapted that mecanism to SCSI, and software RAID may want to act at the higher level, that is suspend the "virtual" disk as soon as the first of it's c hild gets suspended, and resume it when the last of it's child is resumed. But let's go step by step. Once we have the final enough PM callbacks infrastructure in place, we can start toying with indivdual drivers & subsystems that need improved support for PM. Ben.