HEADS UP: UNIX domain socket locking changes merged to CVS HEAD
rwatson at FreeBSD.org
Mon Feb 26 20:52:26 UTC 2007
After on-and-off development since 2005, I've now merged the UNIX domain
socket locking patch. Special thanks to Kris Kennaway who has been providing
stability testing, performance testing, and general support and feedback for
this project since inception.
Please let me know if you experience any problems with UNIX domain sockets --
these changes will affect applications that consume UNIX domain sockets
directly, like MySQL and Postfix, as well as consumers of POSIX fifos, which
are implemented using UNIX domain sockets in-kernel.
Robert N M Watson
University of Cambridge
---------- Forwarded message ----------
Date: Mon, 26 Feb 2007 20:47:52 +0000 (UTC)
From: Robert Watson <rwatson at FreeBSD.org>
To: src-committers at FreeBSD.org, cvs-src at FreeBSD.org, cvs-all at FreeBSD.org
Subject: cvs commit: src/sys/sys unpcb.h src/sys/kern uipc_usrreq.c
rwatson 2007-02-26 20:47:52 UTC
FreeBSD src repository
Revise locking strategy used for UNIX domain sockets in order to improve
- Add per-unpcb mutexes protecting unpcb connection state, fields, etc.
- Replace global UNP mutex with a global UNP rwlock, which will protect the
UNIX domain socket connection topology, v_socket, and be acquired
exclusively before acquiring more than per-unpcb at a time in order to
avoid lock order issues.
In performance measurements involving MySQL, this change has little or no
overhead on UP (+/- 1%), but leads to a significant (5%-30%) improvement in
multi-processor measurements using the sysbench and supersmack benchmarks.
Much testing by: kris
Approved by: re (kensmith)
Revision Changes Path
1.197 +468 -222 src/sys/kern/uipc_usrreq.c
1.22 +1 -0 src/sys/sys/unpcb.h
More information about the freebsd-performance