Re: Memory Management - BSD vs Linux

Cort (cort@cs.nmt.edu)
Tue, 12 Aug 1997 20:05:26 -0600 (MDT)


Not at all! The hash table serves as the page tables on the ppc
(or just a big tlb as Linus claims). The hash table pte's are loaded from
the linux managed page table tree (3 level page table). On the prep
systems (not yet the macs) the bats map a lot of kernel memory and no hash
table space gets wasted on those mappings but EVERYTHING else gets mapped
by the hash table.

}A quick glance at the code, and it seems like they're just
}ignored once initialized. If so, they have no impact on the
}OS design. Am I wrong?

The hash tables do have a big impact on the design of ppc linux.
Unforunately, right now we're using them in the most simplistic way
possible (we _are_ treating them like a tlb extension for the page-table
tree).

In fact, until I rewrote some of the hash table placement code the system
was suffering badly due to many collisions in the hash table. Improving
that made the system much faster so they do effect quite a bit.

See arch/ppc/kernel/head.S - function hash_page() to see how we handle a
reload of the hash table with a page-table tree pte. The mmu is off here
and if there's no fault (bad access, permission denied, etc) then we
return to the user without much fuss (and without turning in the mmu
ever).