cvs commit: src/sys/i386/i386 pmap.c

Jeff Roberson jroberson at chesapeake.net
Mon Aug 18 14:00:44 PDT 2003


On Mon, 18 Aug 2003, Alan L. Cox wrote:

> Jeff Roberson wrote:
> >
> > On Sun, 17 Aug 2003, Alan Cox wrote:
> >
> > > alc         2003/08/17 15:27:30 PDT
> > >
> > >   FreeBSD src repository
> > >
> > >   Modified files:
> > >     sys/i386/i386        pmap.c
> > >   Log:
> > >   Acquire the pte object's mutex when performing vm_page_grab().  Note: It is
> > >   my long-term objective to eliminate the pte object.  In the near term, this
> > >   does, however, enable the addition of some vm object locking assertions.
> > >
> > >   Revision  Changes    Path
> > >   1.427     +4 -0      src/sys/i386/i386/pmap.c
> > >
> >
> > What is your plan for the pte object?  Will we still be able to page out
> > page tables?
> >
>
> Yes, expect no loss of functionality.  The use of a pte object simply
> reflects the pre-"VM_ALLOC_NOOBJ" days when vm_page_alloc() always
> required an object to contain the allocated page.  As some of my other
> recent pmap changes have demonstrated it's equally easy and perhaps
> faster to use the page table structure itself as the "container" rather
> than doing vm_page_lookup() on the pte obj.  (Annecdotal tests suggested
> that eliminating the vm_page_lookup()s from places such as pmap_copy()
> reduced "buildworld" time by ~0.5%.)
>
> Regards,
> Alan
>

I thought that the pte object was required so that we could page out the
page tables though?  Will the pager still know that it can discard the
pages?  We should be able to recreate them from a fault, yes?  Do you
intend to modify the pager so that it will simply discard unwired NOOBJ
pages?  It seems like that would work.

Thanks,
Jeff



More information about the cvs-src mailing list