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>