Re: mmap-related questions

Jakob Oestergaard
2003-04-02T09:19:28Z

On Tue, Apr 01, 2003 at 07:18:40PM -0800, Kenny Simpson wrote:
> --- Benjamin LaHaise <bcrl@redhat.com> wrote:
> > the act of unmapping them transfers the
> > dirty bit from the page
> > tables into the page cache where fsync() acts on
> > them.
> >
> Should this info be included with Mel Gorman's
> excellent doc:
> http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand/node31.html#SECTION009411000000000000000
> Or is it there, but I missed it?
>
> > The
> > one case this breaks down
> > on is when the mmap()'d file is on NFS -- the
> > reordering there can result in
> > writebacks from mmap()s occuring in unexpected ways.
> I sometimes wish mmap was not supported on NFS, or at
> least require a special MAP_NFS flag be used. It has
> caused lots of pain over the years.

Could someone elaborate on this please?

If my client does
big_map = mmap(... some file ...)
make_dirty(big_map)
msync(first half of big_map)
msync(second half of big_map) { crash during this }

Then I am guaranteed that (unless the server crashes), the first half of
big_map *will* have reached the server, but not that all of the second
half has. Right?

Like any local-disk backed file.

Ignoring the case where the NFS *server* crashes, where could the write
ordering differ, compared to local disk files ?

In other words, what does Benjamin's "unexpected ways" refer to ?

Thanks,

--
................................................................
: jakob@unthought.net : And I see the elder races, :
:.........................: putrid forms of man :
: Jakob Østergaard : See him rise and claim the earth, :
: OZ9ABN : his downfall is at hand. :
:.........................:............{Konkhra}...............: