Re: [GIT PULL] PM updates for 2.6.33

Benjamin Herrenschmidt
2009-12-17T23:32:18Z

On Sun, 2009-12-06 at 22:15 -0800, Linus Torvalds wrote:
>
> The same is true of the prepare_suspend/suspend split I'm proposing:
> I
> suspect that for something like USB, it would make most sense to just
> do
> normal node suspend in prepare_suspend, which would do everything
> asynchronously. Only USB hub devices would get involved at the later
> 'suspend()' phase.

Wasn't part of the goal with prepare_suspend() vs. suspend() to handle
the problem of backing store vs the VM ?

IE. Once any device potentially in the VM path is suspended, things like
kmalloc() or gfp() can potentially stall until resume or did we address
that recently ?

Iirc, part of the idea behind prepare_* is that it's safe vs. the above.
Now if you start suspending USB devices at prepare() then you break that
assumption since those could be mass storage with dirty mmap'ed pages on
them.

Now, I'm all for fixing it at the VM/allocator level (if we didn't
already) turning pretty much everything into NO_IO once we start
suspending devices but that's a whole different matter :-)

Cheers,
Ben.