Re: Async resume patch (was: Re: [GIT PULL] PM updates for 2.6.33)

Alan Stern
2009-12-09T22:27:14Z

On Wed, 9 Dec 2009, Rafael J. Wysocki wrote:

> > I don't like that because it introduces "artificial" dependencies: It
> > makes B depend on all the preceding synchronous suspends, even totally
> > unrelated ones. But yes, it would work.
>
> Well, unfortunately, it wouldn't, because (at least in the context of my last
> patch) the core would release the rwsems as soon as your suspend had
> returned. So you'd have to make your suspend wait for the async thread and
> that would make it pointless. So scratch that, it wasn't a good idea at all.
>
> This leaves us with basically two options, where the first one is to use
> rwsems in a way that you've proposed (with iterating over children), and the
> second one is to use completions. In my opinion rwsems don't give us any
> advantage in this case, so I'd very much prefer to use completions.

If you really want to add support for async suspend constraints, then
completions are clearer than rwsems. If you don't care (and it's
unlikely that anyone will need them in the near future) then you might
as well stick with the current rwsem implementation and avoid iterating
over children.

Alan Stern