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
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.
More information about the cvs-all