Subject: Re: New kinetic figures
To: None <thorpej@zembu.com>
From: Richard Earnshaw <rearnsha@buzzard.freeserve.co.uk>
List: port-arm32
Date: 02/08/2001 23:20:49
> On Thu, Feb 08, 2001 at 10:03:41PM +0000, Richard Earnshaw wrote:
>
> > If we could defer the unmappings until after the pmap has been changed to
> > a different one (or switch to a different pmap before starting the
> > unmapping), we could eliminate the cache flush on process death entirely.
> >
> > Not sure how we might achieve this though.
>
> Hm... it might already be the case that this is what happens...
>
> The address space is torn down in uvmspace_free(), which is called
> from uvm_exit(), which is called from the reaper.
Well, it's possible we've switched to the kernel map, but during process
teardown, the following code is certainly setting pmap_active to true,
since we only flush the cache under that condition.
/* Note if the pmap is active thus require cache and tlb cleans */
if ((curproc && curproc->p_vmspace->vm_map.pmap == pmap)
|| (pmap == kernel_pmap))
pmap_active = 1;
else
pmap_active = 0;
>