[mkc2008] Fwd: Mapping - Mapping DB

Jan Bierbaum s3306700 at mail.inf.tu-dresden.de
Tue Apr 7 23:44:34 CEST 2009


Marcus Voelp meinte am 07.04.2009 09:02:
>> A map could for example try to insert new nodes in a subtree
>> currently being deleted by a concurrent unmap.
>
> Yes, that's an issue and there are various possible solutions to this:
>
> 1) don't worry, unmap will catch it (proper synchronization provided)
> 2) remove rights in preorder pass => map can only establish nodes with
>    reduced rights; unmap may just skip the node in its postorder traversal.
> 3) prevent maps on a to be unmapped subtree

I have some troubles with 2).

Now we have two passes - the first pass (preorder) just reduces rights
on MDB nodes. Why are there rights in the MDB nodes at all? Isn't it
enough to have them in the page tables? What if a mapping is to be
revoked - are all rights removed? When are the page table entries
updated/deleted?

The second pass (postorder) removes all nodes that don't hold rights
anymore, I guess. But if we skip nodes added between the passes, those
would be "orphaned". Except if there will be no new node created for any
mapping originating from a node lacking rights (MDB node whose rights
were removed completely in the first pass).

Could you please give some more details about option 2? Or maybe an
example...



CU, Jan.



More information about the mkc2008 mailing list