Second naive question about map operation

Jean Wolter jean.wolter at inf.tu-dresden.de
Thu Dec 4 21:22:40 CET 2003


"Jonathan S. Shapiro" <shap at eros-os.org> writes:

> A second naive question.
> 
> Imagine that thread A performs separate map operations to each of B and
> C (maps of the same thing). This results in a dependency relationship of
> the form:
> 
>      A
>     / \
>    B   C
> 
> Given that these operations have happened, is there a way for A to
> revoke the mapping held by B without also revoking the mapping held by
> C?

No.

> Does it matter?

In the context of L4Linux we discussed whether it would be useful to
be able to unmap pages in a certain address space. It could be used
during execve to unmap pages of the child process while leaving the
mapping of the parent intact. And there are a lot of shared pages like
pages from shared libraries which should be unmapped only in the
one process.

We are able to ignore the problem because we:

    - track which pages are actually mapped and reduce the necessary
    unmap operations

    - handle process termination and execve in a special way. We don't
    unmap the pages, we kill the address space instead.

So I think this is a useful operation.

Regards,
Jean




More information about the l4-hackers mailing list