lkml.org 
[lkml]   [2003]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: mmap(MAP_PRIVATE) question
Gianni Tedesco wrote:
> Hi all,
>
> >From the mmap(2) manpage it says:
>
> MAP_PRIVATE
> Create a private copy-on-write mapping. Stores to the region do not
> affect the original file. It is unspecified whether changes made
> to the file after the mmap call are visible in the mapped region.
>
> What is linux behaivour in this area? I am guessing if the page is
> modified between the call to mmap() and fault-in then the modified copy
> is seen by the application? But what about modifications after the page
> is already in page-cache?

The page cache page is mapped into the application just like a shared
mapping, until the application writes to the mapped region and
triggers the copy-on-write fault.

This means that if you write() to the page prior to the copy-on-write
fault, you may see the changes in application memory straight away.
If some other process writes to the page through a writable mapping,
you may see the changes.

On the other hand you may not. On some of the architectures which
Linux supports, the CPU's cache is not sufficiently coherent to
guarantee that what is written with write(), or by another process,
will be seen in this application's memory. Indeed, you might see a
mixture of some of the written data and some of the data before it was
written, with no particular guarantee of which bits of data or in what
order.

-- Jamie
-
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/

\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.026 / U:0.344 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site