cvs commit: src/sys/alpha/alpha pmap.c src/sys/amd64/amd64pmap.c src/sys/i386/i386 pmap.c src/sys/vm vm_page.c

Scott Long scottl at freebsd.org
Thu Jul 29 13:26:14 PDT 2004


On Thu, 29 Jul 2004, Alan Cox wrote:
> On Thu, Jul 29, 2004 at 03:41:03PM -0400, Robert Watson wrote:
> > On Thu, 29 Jul 2004, Scott Long wrote:
> >
> > > >    - Enable recursion on the page queues lock.  This allows calls to
> > > >      vm_page_alloc(VM_ALLOC_NORMAL) and UMA's obj_alloc() with the page
> > > >      queues lock held.  Such calls are made to allocate page table pages
> > > >      and pv entries.
> > >
> > > My understanding is that recursive mutexes are quite expensive.  Is
> > > recursion a common occurrance now, and is there a good way to
> > > profile/measure these paths?
> >
> > No opinion on the change itself, but just to clarify this wording a little
> > for those reading who don't follow the locking work blow-by-blow: flagging
> > a mutex as recursive itself is not expensive, but the act of recursing the
> > mutex is expensive.
> >
>
> I've benchmarked these changes on alpha, amd64 and i386 under
> buildworld.  The overhead is small.
>
> Also, recursion on the mutex will be rare, occurring under conditions
> of an empty or near-empty free list.

Great!  Thanks for all of your work here =-)

Scott


More information about the cvs-src mailing list