Second naive question about map operation

Marcus Völp voelp at
Fri Dec 5 11:29:38 CET 2003

Jean Wolter wrote:

>PS: I forgot a really nasty interaction with grant. If I take the
>example of the other thread:
>        A
>       / \
>      B   C
>Assuming A doesn't know that B constructed the dependency between A
>and C (either using map/grant or co-equal mapping) and A unmaps the
>page only in the address space of B there is still the mapping in the
>address space of C.
>So to make unmap(page, adress space) actually usable you would need a
>possibility to prohibit the grant operation for a page.
All you need is to be able to identify the mapping even if it has been 
granted away. The question is more how to engineer the mapping database 
such that the unmap (page_A, B) is possible. One way would be to add a 
second address space field into the mapping node.

I think the harder problem is to select the appropriate mapping. First, 
the page has to be specified as an address in A, since A usually does 
not know about B's address space layout (small receive flexpage). This 
however would mean to search through all children of A which would be 
very costly in most mdb implementations (dfs sorted the linked list 
based ones).


More information about the l4-hackers mailing list