Subject: Re: Multiple page sizes and the pmap API
To: Jason R Thorpe <thorpej@wasabisystems.com>
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
List: tech-kern
Date: 12/06/2001 16:05:11
> Several platforms support multiple page sizes.  Examples are
> the i386, which has 4K and 4M pages, the ARM which has 4K,
> 64K, and 1M pages, and the MIPS which has 4K, 8K, 16K, ... pages.

Other examples include UltraSPARC and Itanium; I'm sure there are
others as well.

>		pmap_enter(pmap, va, pa,
>		    VM_PROT_READ|VM_PROT_WRITE|PMAP_PAGESIZE(1), 0);

Nailing down the semantics a bit more tightly:

I assume that the pmap implementation is allowed to ASSERT that both
va and pa are aligned properly for the requested page size.

What about overlapping mappings with smaller pages?  is the VM system
required to remove them first, or are they implicitly blown away?
[This could result in a page table page being freed as a side effect of
the pmap_enter()]

						- Bill