Bugtraq mailing list archives

Re: linux 2.0 PTE bug


From: thorpej () nas nasa gov (Jason Thorpe)
Date: Tue, 26 May 1998 13:40:18 -0700


On Mon, 25 May 1998 13:51:42 +0200
 XXX_p6mip300 <p6mip300 () INFOP6 CICRP JUSSIEU FR> wrote:

How to solve it ?
Well, we could swap the pgd / pmd / pte, but i really don't know
if it is possible or what.

...or you want something like lazy page table allocation.  As I recall,
the Linux VM code has a "flat" model, whereas Mach VM (the basis of the
VM system used by 4.4BSD and its derivatives) and UVM (NetBSD's new VM
system) have a 2-layer model; the upper layer holds mappings that can
coalesce to save space, and the lower layer holds the (redundant) physical
mappings (in the format used by the MMU/software TLB reload engine/whatever).

This lower layer is able to allocate page tables or other physical mapping
resources "lazily", as mappings for actual physical pages are entered by
the upper layer.

This lower layer is also free to "forget" mappings at any time, so when
memory is in extremely short supply, the page tables can simply be freed
to the system (and that process's page table base pointer set to some default
empty page table), and when that process runs again, the mappings are
simply rebuilt as the page faults occur from the (compact) info stored in
the upper layer.

Jason R. Thorpe                                       thorpej () nas nasa gov
NASA Ames Research Center                            Home: +1 408 866 1912
NAS: M/S 258-5                                       Work: +1 650 604 0935
Moffett Field, CA 94035                             Pager: +1 650 428 6939



Current thread: