Subject: CVS commit: src
To: None <source-changes@netbsd.org>
From: Charles M. Hannum <mycroft@netbsd.org>
List: source-changes
Date: 03/26/1999 14:00:26
Module Name:	src
Committed By:	mycroft
Date:		Fri Mar 26 22:00:26 UTC 1999

Modified Files:
	src/sys/arch/arm32/arm32: bus_dma.c fault.c machdep.c mem.c pmap.c
	    vm_machdep.c
	src/sys/arch/arm32/ofw: ofrom.c
Log Message:
Take advantage of the new `access_type' for pmap_enter(), and always do R/M
emulation of managed pages.  This required the following `interesting' changes:
* File system buffers must be entered with an access type of
VM_PROT_READ|VM_PROT_WRITE, so that the pages will be accessible immediately.
Otherwise we would have to teach pagemove() to update the R/M information.
Since they're never eligible for paging, the latter is overkill.
* We must insure that pages allocated before the pmap is completely set up
(that is, pages allocated early by the VM system) are not eligible for R/M
emulation, since the memory needed for this isn't available.  We do this by
allocating the pmap's internal memory with uvm_pageboot_alloc().  This also
fixes an absolutely horrible hack where the pmap only worked because page 0
happened to be mapped.
to be mapped.
Also:
* Push the wired page counting into the p->v list maintenance functions.  This
avoids code duplication, and fixes some cases where we were confused about
which pages to do it with.
* Fix lots of problems associated with pmap_nightmare() (and rename it to
pmap_vac_me_harder()).
* Since the early pages are no longer considered `managed', just make
pmap_*_pv() panic if !pmap_initialized.