mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* MAP_PRIVATE that stays private even on external write
@ 2008-12-02 10:06 Miquel van Smoorenburg
  2008-12-02 10:27 ` Peter Zijlstra
  0 siblings, 1 reply; 4+ messages in thread
From: Miquel van Smoorenburg @ 2008-12-02 10:06 UTC (permalink / raw)
  To: linux-kernel

I have an application that mmaps blocks from a file and then
sends it out over a TCP socket.

The contents of the file may be overwritten while the blocks
are sent out, but there is a very low chance of that.

To prevent this, I can ofcourse just use read() all blocks into
memory in advance, check consistency, and go ahead .. but since
there may be a lot of network connections active this might cost
a lot of memory.

What I am looking for is a MAP_PRIVATE type flag that, when another
process modifies pages of the file (through mmap() or write())
makes sure that my mapping never sees that.

I found out that mmap(MAP_PRIVATE|MAP_POPULATE) does exactly what
I want, but ofcourse it reads in the entire mapping all at once,
which is equivalent to plain read().

There has been talk of a MAP_SNAPSHOT flag before, e.g.
http://lkml.indiana.edu/hypermail/linux/kernel/0407.1/0416.htm

Has anyone ever looked at implementing something like this ?

Mike.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-12-02 15:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-02 10:06 MAP_PRIVATE that stays private even on external write Miquel van Smoorenburg
2008-12-02 10:27 ` Peter Zijlstra
2008-12-02 14:34   ` Miquel van Smoorenburg
2008-12-02 15:02     ` Peter Zijlstra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®