Messages in this thread | | | From | Malcolm Beattie <> | Subject | Re: Memory Management - BSD vs Linux | Date | 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
| |