[6832] in bugtraq
Re: linux 2.0 PTE bug
daemon@ATHENA.MIT.EDU (Jason Thorpe)
Tue May 26 20:44:31 1998
Date: Tue, 26 May 1998 13:40:18 -0700
Reply-To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Jason Thorpe <thorpej@NAS.NASA.GOV>
X-To: XXX_p6mip300 <p6mip300@infop6.cicrp.jussieu.fr>
To: BUGTRAQ@NETSPACE.ORG
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