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

Alan Cox alc at cs.rice.edu
Thu Jul 29 13:08:54 PDT 2004


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.

Alan


More information about the cvs-all mailing list