Messages in this thread | | | Subject | Re: Freezer Patches. | From | Benjamin Herrenschmidt <> | Date | Thu, 02 Jun 2005 17:36:12 +1000 |
| |
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.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |