[mkc2008] Mapping - Mapping DB

Jan Bierbaum s3306700 at mail.inf.tu-dresden.de
Sun Apr 5 15:57:38 CEST 2009


On slide 33 there's an approach of integrating the mapping database's
nodes directly into the page table. Can this actually be done? AFAIK
page tables are quite dense and since the structure is preset by the
hardware it can't be changed.

Which of the techniques for finding the root node (search, caching,
linking, integration) is used by Fiasco?

Also there are some issues regarding the helping lock approach.
Unfortunately this part is very short in the slides (only slide 49) and
not what is described in Marcus' diploma thesis.

Unmapping could take some time because it (potentially) has to remove a
complete subtree from the MDB and the corresponding page table entries.
But we want short interrupt latency hence unmapping has to be done
preemptively. That's when these helping subtree locks come in. So the
whole subtree to be unmapped is locked with such a lock. But who exactly
will share this lock? All operations including mappings or only
concurrent unmaps?

Mapping on the other hand is supposed to happen atomically. But a map
operation not only appends a node in the MDB but also has to change the
receiver's page table(s). These are distinct memory operations so atomic
CPU-instructions won't help. Or are there any atomic instruction that
perform this task? So maps need to use acquire helping locks too, don't

Thanks, Jan.

More information about the mkc2008 mailing list