Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jun 2009 01:55:42 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src UPDATING src/share/man/man9 lock.9 src/sys/conf options src/sys/kern kern_lock.c src/sys/sys lockmgr.h
Message-ID:  <200906170203.n5H23DOp073735@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
attilio     2009-06-17 01:55:42 UTC

  FreeBSD src repository

  Modified files:
    .                    UPDATING 
    share/man/man9       lock.9 
    sys/conf             options 
    sys/kern             kern_lock.c 
    sys/sys              lockmgr.h 
  Log:
  SVN rev 194317 on 2009-06-17 01:55:42Z by attilio
  
  Introduce support for adaptive spinning in lockmgr.
  Actually, as it did receive few tuning, the support is disabled by
  default, but it can opt-in with the option ADAPTIVE_LOCKMGRS.
  Due to the nature of lockmgrs, adaptive spinning needs to be
  selectively enabled for any interested lockmgr.
  The support is bi-directional, or, in other ways, it will work in both
  cases if the lock is held in read or write way.  In particular, the
  read path is passible of further tunning using the sysctls
  debug.lockmgr.retries and debug.lockmgr.loops .  Ideally, such sysctls
  should be axed or compiled out before release.
  
  Addictionally note that adaptive spinning doesn't cope well with
  LK_SLEEPFAIL.  The reason is that many (and probabilly all) consumers
  of LK_SLEEPFAIL are mainly interested in knowing if the interlock was
  dropped or not in order to reacquire it and re-test initial conditions.
  This directly interacts with adaptive spinning because lockmgr needs
  to drop the interlock while spinning in order to avoid a deadlock
  (further details in the comments inside the patch).
  
  Final note: finding someone willing to help on tuning this with
  relevant workloads would be either very important and appreciated.
  
  Tested by:      jeff, pho
  Requested by:   many
  
  Revision  Changes    Path
  1.619     +7 -0      src/UPDATING
  1.35      +4 -1      src/share/man/man9/lock.9
  1.682     +1 -0      src/sys/conf/options
  1.144     +204 -18   src/sys/kern/kern_lock.c
  1.72      +4 -2      src/sys/sys/lockmgr.h



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