Subject: Re: Some VAX pmap observations
To: None <thorpej@wasabisystems.com>
From: Anders Magnusson <ragge@ludd.luth.se>
List: port-vax
Date: 04/29/2002 19:21:12
> The work the VAX pmap does in cpu_swapout() and cpu_swapin() seems
> totally unnecessary:
>
> * Before a process is swapped out, pmap_collect() is called to
> release any resources for that process. cpu_swapout() doesn't
> really need to do it; the work should be in pmap_collect().
>
pmap_deactivate() needs the struct proc * to know which process to
"detach" from the current pmap (or actually which pcb).
> * cpu_swapin() shouldn't need to validate all of the PTEs for
> the U-area, since the upper levels in the VM system explicitly
> wire the space, so pmap_enter() will be called to do the job.
> The only think you really need to do there is to set the redzone
> PTE.
>
pmap_enter() enter pages with the valid bit not set in the pte to be
able to simulate the non-existing reference bit. The kernel stack is
not legal to have invalid, therefore the valid bit must be set in
each pte.
Due to a recent change (some year ago or so) the valid bit in the pte
is already set in pmap_enter() on wired pages, so this small loop can
probably be removed :-)
-- Ragge