Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2002 13:47:11 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/conf NOTES options src/sys/kern kern_mutex.c
Message-ID:  <200205212047.g4LKlBY50788@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2002/05/21 13:47:11 PDT

  Modified files:
    sys/conf             NOTES options 
    sys/kern             kern_mutex.c 
  Log:
  Add code to make default mutexes adaptive if the ADAPTIVE_MUTEXES kernel
  option is used (not on by default).
  
  - In the case of trying to lock a mutex, if the MTX_CONTESTED flag is set,
    then we can safely read the thread pointer from the mtx_lock member while
    holding sched_lock.  We then examine the thread to see if it is currently
    executing on another CPU.  If it is, then we keep looping instead of
    blocking.
  - In the case of trying to unlock a mutex, it is now possible for a mutex
    to have MTX_CONTESTED set in mtx_lock but to not have any threads
    actually blocked on it, so we need to handle that case.  In that case,
    we just release the lock as if MTX_CONTESTED was not set and return.
  - We do not adaptively spin on Giant as Giant is held for long times and
    it slows SMP systems down to a crawl (it was taking several minutes,
    like 5-10 or so for my test alpha and sparc64 SMP boxes to boot up when
    they adaptively spinned on Giant).
  - We only compile in the code to do this for SMP kernels, it doesn't make
    sense for UP kernels.
  
  Tested on:      i386, alpha, sparc64
  
  Revision  Changes    Path
  1.1033    +5 -0      src/sys/conf/NOTES
  1.318     +1 -0      src/sys/conf/options
  1.92      +26 -0     src/sys/kern/kern_mutex.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




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