Messages in this thread | | | Date | Tue, 11 Aug 2009 11:53:57 -0400 (EDT) | From | Alan Stern <> | Subject | Re: [PATCH V2 0/4] introduce device async actions mechanism |
| |
On Tue, 11 Aug 2009, Rafael J. Wysocki wrote:
> In fact, we don't need the layers at all. The only thing we have to assure is > that, during resume, the devices given device depends on will be handled > before we start to handle this particular device (inversely during suspend). > > Please note that we're not even allowed to start executing the device's > resume callback before the callbacks of the devices it depends on have > returned (the same applies to the suspend callbacks, but the other way around).
The general algorithm for maximum parallelism goes as follows: Start by resuming (in parallel) all the devices which don't depend on anything else. Each time a resume finishes, you go on to resume (in parallel) all the devices which depend only on resumed devices and which haven't yet started to resume.
As described, this can require a large number of threads. It also requires detailed knowledge of which devices depend on others, which we don't have.
Alan Stern
| |