> Will you be able to guarantee that every place where a task can/will block
Which places aren't harmless if you don't have a freezer ?
No, the freezer creates all those places what are harmful for a task to
block because they will break the freezer :-)
NOIO should be enough I think but ATOMIC would do).
That's one of the reason why I used to have the pre-suspend and
post-resume hooks in my original powermac implementation, for those few
drivers complicated enough to require some pre-allocations.
Note that the above firmware problem could be dealt with also with the
pre-suspend/post-resume. Allowing to pre-request firmware etc... and
keep it around until after resume, because we know we will need it.
Gives a chance to drivers to perform things while the system is still
live, filesystems still working, etc... (big memory allocations for
example).
Maybe but they are less of an issue, most of the time, they don't do DMA
or whatever harmful things. If they are USB drivers, for example, they
are an non-issues at that level.
-