Re: [PATCH, RFD]: Unbreak no-mmu mmap

From: David Howells
Date: Wed Aug 01 2007 - 08:29:21 EST


Bernd Schmidt <bernds_cb1@xxxxxxxxxxx> wrote:
> 1. munmap can now unmap subparts of previously allocated blocks. This
> makes behaviour more consistent with mmu Linux, and allows us to
> simplify and speed up the uClibc malloc implementation.

There's a problem with your alteration to do_munmap() to split VMAs. What
happens if an area of a file is mmap'd twice in a process? Consider the
situation where two independent parts of a process (say two different
libraries) each map an area of the same file. do_mmap_pgoff() will attempt to
share these regions if it can.

This can lead to you splitting the wrong VMA when someone comes along later to
do an apparent partial unmap.

I'm currently working on something to give each NOMMU process its own list
VMAs rather than holding them in common. This is so that I can add VMA
reservation (and more to the point, unreservation) which'll make some stuff
easier.

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