Re: Freezer Patches.

Benjamin Herrenschmidt
2005-06-02T07:37:21Z

On Thu, 2005-06-02 at 09:31 +0200, Pavel Machek wrote:
> Hi!
>
> > > If sys_sync() is not working, *fix sys_sync()*. [BTW I see that
> > > problem before and I think it is being worked on.] I'm *not* going to
> > > work around it in refrigerator.
> >
> > I'm not saying sys_sync is broken. I _am_ saying that if you have
> > processes submitting I/O while you're trying to sync, syncing will take
> > longer and you may well still end up with dirty buffers at the end. On
> > top of this, you may think freezing has failed because processes don't
> > enter the refrigerator within your timelimit (assuming you have
> > one).
>
> Then simple launch sys_sync(), let it finish, *then* do
> refrigeration. That way sys_sync() does not count to the timelimit.
>
> Now, sys_sync() takes too long on some setups. That needs to be fixed,
> anyway; users don't like to wait for 15 minutes after typing
> "sync". Do not work around it in refrigerator.

Whatever you guys decide to do (I actually do sys_sync() before freezing
on pmac and yes, it takes sometimes way too long), to be uber-safe, we
could/should _also_ do sync after freezing userland processes and before
freezing kernel threads (that is, splitting here). In fact, that would
help also avoid deadlocks where a frozen kernel thread is holding a
semaphore preventing a process from freezing.

That way, if we sys_sync() once processes are sleeping and before kernel
threads are, we pretty-much make sure no new dirty buffer will appear.

Anyway, that's mostly food for thoughts at this point

Ben.