Re: [linux-pm] Re: Hibernation considerations

Rafael J. Wysocki
2007-07-23T12:01:17Z

On Monday, 23 July 2007 12:24, Miklos Szeredi wrote:
> > > The only thing to do is what Rafael has been working on: unfreeze
> > > things, hope the tasks sort themselves out, and try again.
> >
> > That's what I'm questioning. Is there a more reliable way and we've
> > just given up too quickly?
>
> There obviously _are_ more reliable ways. A trivial one seems to be
> to just not require user tasks to finish syscalls.
>
> Yeah, stopping user processes outside the kernel is convenient, but
> there's no fundamental reason why it is the only place where those
> tasks can be stopped.

The reason is that we want them to "park" in safe places, ie. where there
are no locks held etc. Thus, these safe places need to be chosen somehow
and since they are not marked throughout the code, we choose the obvious
one. :-)

> And there are very fundamental reasons to _not_ require this. Not
> just in the fuse case, but in any case where a syscall requires
> another user task to run before it can be finished (e.g. NFS over
> OpenVPN).

Yeah. Mark the safe places for us and we'll use them.

Greetings,
Rafael

--
"Premature optimization is the root of all evil." - Donald Knuth