Re: msync() behaviour broken for MS_ASYNC, revert patch?

From: Andrew Morton
Date: Thu Feb 09 2006 - 03:41:20 EST


Nick Piggin <nickpiggin@xxxxxxxxxxxx> 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.

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).

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/