Messages in this thread | | | Date | Thu, 09 Feb 2006 23:38:29 +1100 | From | Nick Piggin <> | Subject | Re: msync() behaviour broken for MS_ASYNC, revert patch? |
| |
Andrew Morton wrote: > Nick Piggin <nickpiggin@yahoo.com.au> wrote: > >>Andrew Morton wrote: >> >> >>>2.4: >>> >>> MS_ASYNC: dirty the pagecache pages, start I/O >>> MS_SYNC: dirty the pagecache pages, start I/O, wait on I/O >>> >>>2.6: >>> >>> MS_ASYNC: dirty the pagecache pages >>> MS_SYNC: dirty the pagecache pages, start I/O, wait on I/O. >>> >>>So you're saying that doing the I/O in that 25-100msec window allowed your >>>app to do more pipelining. >>> >>>I think for most scenarios, what we have in 2.6 is better: it gives the app >>>more control over when the I/O should be started. >> >>How so? >> > > > Well, for example you might want to msync a number of disjoint parts of the > mapping, then write them all out in one hit. >
That should still be pretty efficient with 2.4 like behaviour? pdflush does write them out in file offset order doesn't it?
> Or you may not actually _want_ to start the I/O now - you just want pdflush > to write things back in a reasonable time period, so you don't have unsynced > data floating about in memory for eight hours. That's a quite reasonable > application of msync(MS_ASYNC). >
I think data integrity requirements should be handled by MS_SYNC.
-- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com
- 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/
| |