Re: [linux-pm] Re: Hibernation considerations

Rafael J. Wysocki
2007-07-23T12:19:59Z

On Monday, 23 July 2007 14:14, Miklos Szeredi wrote:
> > 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. :-)
>
> Why shouldn't locks be held?
>
> No locks which are required for suspend must be held, sure. But
> otherwise holding locks doesn't matter at all.
>
> And I'm not saying that is trivial to do, but it might not be too hard
> either.
>
> Rafael, can you please tell, what happened to that patch, that did not
> wait for tasks in uninterruptible sleep to be frozen?
>
> That seemed like a magnificent approach compared to anything that has
> been proposed since.

Well, the freezer have failed to freeze tasks for a couple of times in my
test setup and I've had a couple of hangs.

I have an idea how to improve it, but that still requires some pending freezer
patches to go first.

Greetings,
Rafael

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