Messages in this thread | | | Date | Fri, 12 Mar 2004 11:25:27 -0500 (EST) | From | Rik van Riel <> | Subject | Re: anon_vma RFC2 |
| |
On Fri, 12 Mar 2004, Andrea Arcangeli wrote:
> I don't see what you mean with sharing the same address space between > parent and child, whatever _global_ mm wide address space is screwed by > mremap, if you don't use the pg_off to ofset the page->index, the > vm_start/vm_end means nothing.
At mremap time, you don't change the page->index at all, but only the vm_start/vm_end. Think of it as an mm_struct pointing to a struct address_space with its anonymous memory. On exec() the mm_struct gets a new address_space, on fork parent and child share them.
Sharing is good enough, because there is PAGE_SIZE times more space in a struct address_space than there's available virtual memory in one single process. That means that for a daemon like apache every child can simply get its own 4GB subset of the address space for any new VMAs, while mapping the inherited VMAs in the same way any other file is mapped.
> I think the anonmm design is flawed and it has no way to handle > mremap reasonably well,
There's no difference between mremap() of anonymous memory and mremap() of part of an mmap() range of a file...
At least, there doesn't need to be.
-- "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." - Brian W. Kernighan
- 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/
| |