Question about map operation
Gernot Heiser
gernot at cse.unsw.edu.au
Fri Dec 5 22:49:34 CET 2003
>>>>> On 05 Dec 2003 13:49:02 -0500, "Jonathan S. Shapiro" <shap at eros-os.org> said:
JSS> Believe it or not, I'm converging, but I'm trying to do it respectfully,
JSS> which means asking an unreasonable number of stupid questions at high
JSS> speed. :-)
JSS> Now that I understand the shape of GPTs, I would like to understand the
JSS> *mechanism* of the map operation. In particular, I would like to
JSS> understand how the book-keeping mechanism works.
Hi Jon,
It seems that you're under a bit of a misconception here. GPTs are a
pure implementation issue as far as L4 is concerned. In fact, most
existing L4 implementation _don't_ use GPTs. AFAIK the only released
versions of L4 that implemented GPTs were the (discontinued) V2 MIPS
and Alpha kernels. And both of these used only a single, fixed node
size.
On architectures with hardware-loaded TLBs L4 uses the HW page table
format only.
Chris here at UNSW has designed and implemented a more general version
of the GPT which we call the variable radix page table (VRPT). The
implementation is (AFAIK) the first with really adaptive nodes,
combined with some strategies for splitting and merging (plus support
for superpages). He also handles the guard checking differently, doing
an optimistic traversal and only check for correctness of translation
at the end.
It's been originally implemented in an experimental kernel and is
presently being ported to Pistachio.
I'll leave answering your specific questions to those who actually
know the implementation ;-)
Gernot
More information about the l4-hackers
mailing list