Re: Why don't shared anonymous mappings work?

Benjamin C.R. LaHaise
1999-01-15T06:07:53Z

On Wed, 13 Jan 1999, Colin Plumb wrote:

> Um, okay, how about a more plausible scenario. Processes 1 and 2
> share a page X. Process 1 forks.
>
> Doesn't this lead to the hairy Mach-like situation?

Nope, the new process inherits the mapping with the shared attribute
intact.

> Um, I think you fail to understand. I was talking about a linked list
> *without* allocating extra space. The idea is that I don't know of a
> processor that requires more than 2 bits (M68K) to mark a PTE as invalid;
> the user gets the rest. Currently the user bits in the invalid PTE
> encodings point to swap pages. You could steal one bit and point to
> either a word in memory or a swap page.

Ooops, brain fart (sometimes you read, but the meaning just isn't
absorbed). I think assuming that you can get 30 bits out of a pte on a 32
bit platform to use as a pointer is pushing things, though (and you do
need all the bits: mremap allows users to move shared pages to different
offset within a page table). Under the scheme I'm planning on
implementing, this is a non issue: all pages are tied to an inode.
Alternatively, we could pull i_mmap & co out of struct inode and make a
vmstore (or whatever) object as I believe Eric suggested.

-ben