Messages in this thread | | | Date | Tue, 6 Jan 2009 18:24:18 -0500 | From | Christoph Hellwig <> | Subject | Re: 2.6.29 -mm merge plans |
| |
On Tue, Jan 06, 2009 at 03:11:31PM -0800, Andrew Morton wrote: > > I'm not sure this is a good idea. Concurrent syncs are a bad idea > > to start with and we should just synchronyze do_sync completely. > > sync_filesystems as one of the main components of do_sync already > > is synchronized in that way, and taking that to a higher level would > > get rid of all the worries about concurrent syncs. > > Yes, single-threading sys_sync() would fix the problem which that patch > addresses. > > However there are a lot of performance and correctness issues around > sys_sync()-versus-fsync(), etc for which such a simple fix won't be > acceptable.
fsync should really not much interac with sync at that level. While they both end up at same primitives at the lowest level those aren't the ones we're trying to protect against. I'm currently in the process of a major rework of sys_sync/do_sync to make it work properly for modern filesystems and the global synchronization was one of the first things I did..
So if you have any workloads where that causes a problem please send them my way. Not that I can really thing of them, given the global nature of sys_sync I can't see any benefit of doing multiple of these in parallel.
| |