Re: Memory Management - BSD vs Linux

Malcolm Beattie (mbeattie@sable.ox.ac.uk)
Tue, 12 Aug 1997 16:54:05 +0100 (BST)


Douglas Jardine writes:
> I missed a couple of questions in my last mail:
>
> [7] In order to be able to run over different architectures, Linux
> implements a 3-level page table. It then rolls the architecture
> specific stuff into this 3-level organization. For example x86
> has only 2-level page tables but these are appropriately munged
> into the 3-level organization. My question is that, are there
> any architectures out there for which this sort of transformation
> won't work? i.e does the transformation take away enough from
> the architectures strengths that other hacks are needed to be
> able to get reasonable performance?

I wondered about that too. An interesting example would be the
inverted page tables of the RS6000 (and isn't PA-RISC either the
same or weird in a similar way: I know there's DVMA fun for PA-RISC).
Since nobody has tried porting Linux to RS6k (that I know about) and
the current PA-RISC support is on top of a microkernel (or is there
something native now?), there's never been a case where the Linux
pgd/pmd/pte hasn't been general enough (whereas SVR4 HAT and
*BSD/Mach would be). Looked at another way: all the main architectures
*are* covered by the Linux solution (PA-RISC is a "maybe" I suppose)
so, since the Linux one gives enough generality to cover them and also
gives performance benefits (less indirection and more opportunity for
the compiler to optimise), it was a good design decision.

(But I'd still like to know if anyone has a mapping worked out for
RS6k :-).

--Malcolm

-- 
Malcolm Beattie <mbeattie@sable.ox.ac.uk>
Unix Systems Programmer
Oxford University Computing Services