Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jul 2004 22:22:15 -0500
From:      Alan Cox <alc@cs.rice.edu>
To:        Julian Elischer <julian@elischer.org>
Cc:        Peter Wemm <peter@FreeBSD.org>
Subject:   Re: cvs commit: src/sys/vm vm_map.c
Message-ID:  <20040721032215.GF18577@cs.rice.edu>
In-Reply-To: <40FDC381.1030802@elischer.org>
References:  <200407210029.i6L0TLv0024324@repoman.freebsd.org> <40FDC381.1030802@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 20, 2004 at 06:14:41PM -0700, Julian Elischer wrote:
> Peter Wemm wrote:
> 
> >peter       2004-07-21 00:29:21 UTC
> >
> > FreeBSD src repository
> >
> > Modified files:
> >   sys/vm               vm_map.c 
> > Log:
> > Move the initialization and teardown of pmaps to the vmspace zone's
> > init and fini handlers.  Our vm system removes all userland mappings at
> > exit prior to calling pmap_release.  It just so happens that we might
> > as well reuse the pmap for the next process since the userland slate
> > has already been wiped clean.
> > 
> > However.  There is a functional benefit to this as well.  For platforms
> > that share userland and kernel context in the same pmap, it means that
> > the kernel portion of a pmap remains valid after the vmspace has been
> > freed (process exit) and while it is in uma's cache.  This is significant
> > for i386 SMP systems with kernel context borrowing because it avoids
> > a LOT of IPIs from the pmap_lazyfix() cleanup in the usual case.
> >
> 
> Just thought of something..
> if the kernel section of a pmap gets changed,
> does the system scan all processes to fix them?

Yes, we maintain a list of all pmaps on i386.  We traverse that list
when the kernel's address space grows in size, updating each of the
page directory pages.

> ... and if it does, does it
> do those in the cache?

Yes, until you call pmap_release(), the pmap, including cached pmaps,
remains in the all pmaps list.

> I have to go look at the pmap code again....
> 
> > 
> > Tested on:  amd64, i386, sparc64, alpha
> > Glanced at by:  alc
> > 
> > Revision  Changes    Path
> > 1.343     +2 -3      src/sys/vm/vm_map.c
> > 
> >

Regards,
Alan
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040721032215.GF18577>