Re: mmap/munmap semantics

From: James Antill (james@and.org)
Date: Tue Feb 22 2000 - 13:36:21 EST


  Richard Guenther <richard.guenther@student.uni-tuebingen.de> writes:

> Hi!
>
> With the ongoing development of GLAME there arise the following
> problems with the backing-store management, which is a mmaped
> file and does "userspace virtual memory management":
> - I cannot see a way to mmap a part of the file but set the
> contents initially to zero, i.e. I want to setup an initially
> dirty zero-mapping which is assigned to a part of the file.
> Currently I'm just mmaping the part and do the zeroing by
> reading from /dev/zero (which does as I understand from the
> kernel code just create this zero mappings) - is there a more
> portable way to achieve this?

 I think you want to truncate/lseek after open but before you mmap,
if I'm reading what you want to do properly.
 This is portable (at least it works on Linux/FreeBSD/Solaris).

> - I need to "drop" a mapping sometimes without writing the contents
> back to disk - I cannot see a way to do this with linux currently.
> Ideally a hole could be created in the mmapped file on drop time -
> is this possible at all with the VFS/ext2 at the moment (creating
> a hole in a file by dropping parts of it)?

 The mapping can be synchronized with the file before you munmap() so
I'm not sure what you want mrevert() ? -- I'm positive you're going to
have to do this in user space (Ie. copy the file and then rename() or
don't rename() at munmap() time -- or do a private mapping and write()
to the file at munmap()).

-- 
James Antill -- james@and.org
I am always an optimist, but frankly there is no hope.
   -Hosni Mubarek

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



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:31 EST