Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Mar 2009 21:48:29 +0000 (UTC)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/kern subr_witness.c uipc_usrreq.c
Message-ID:  <200903082148.n28LmYZ8034258@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
rwatson     2009-03-08 21:48:29 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             subr_witness.c uipc_usrreq.c 
  Log:
  SVN rev 189544 on 2009-03-08 21:48:29Z by rwatson
  
  Decompose the global UNIX domain sockets rwlock into two different
  locks: a global list/counter/generation counter protected by a new
  mutex unp_list_lock, and a global linkage rwlock, unp_global_rwlock,
  which protects the connections between UNIX domain sockets.
  
  This eliminates conditional lock acquisition that was previously a
  property of the global lock being held over sonewconn() leading to a
  call to uipc_attach(), which also required the global lock, but
  couldn't rely on it as other paths existed to uipc_attach() that
  didn't hold it: now uipc_attach() uses only the list lock, which
  follows the linkage lock in the lock order.  It may also reduce
  contention on the global lock for some workloads.
  
  Add global UNIX domain socket locks to hard-coded witness lock
  order.
  
  MFC after:      1 week
  Discussed with: kris
  
  Revision  Changes    Path
  1.267     +2 -0      src/sys/kern/subr_witness.c
  1.226     +96 -102   src/sys/kern/uipc_usrreq.c



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