Date: Thu, 03 May 2007 11:36:56 -0400 From: Randall Stewart <rrs@cisco.com> To: Robert Watson <rwatson@FreeBSD.org> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern uipc_debug.c uipc_sockbuf.c uipc_socket.c uipc_syscalls.c src/sys/netinet sctputil.c src/sys/sys socketvar.h Message-ID: <463A0198.3040507@cisco.com> In-Reply-To: <200705031442.l43Egggi064069@repoman.freebsd.org> References: <200705031442.l43Egggi064069@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Robert Watson wrote: > rwatson 2007-05-03 14:42:42 UTC > > FreeBSD src repository > > Modified files: > sys/kern uipc_debug.c uipc_sockbuf.c uipc_socket.c > uipc_syscalls.c > sys/netinet sctputil.c > sys/sys socketvar.h > Log: > sblock() implements a sleep lock by interlocking SB_WANT and SB_LOCK flags > on each socket buffer with the socket buffer's mutex. This sleep lock is > used to serialize I/O on sockets in order to prevent I/O interlacing. > > This change replaces the custom sleep lock with an sx(9) lock, which > results in marginally better performance, better handling of contention > during simultaneous socket I/O across multiple threads, and a cleaner > separation between the different layers of locking in socket buffers. > Specifically, the socket buffer mutex is now solely responsible for > serializing simultaneous operation on the socket buffer data structure, > and not for I/O serialization. > > While here, fix two historic bugs: > > (1) a bug allowing I/O to be occasionally interlaced during long I/O > operations (discovere by Isilon). > > (2) a bug in which failed non-blocking acquisition of the socket buffer > I/O serialization lock might be ignored (discovered by sam). > > SCTP portion of this patch submitted by rrs. > > Revision Changes Path > 1.2 +0 -8 src/sys/kern/uipc_debug.c > 1.169 +16 -19 src/sys/kern/uipc_sockbuf.c > 1.298 +68 -61 src/sys/kern/uipc_socket.c > 1.254 +0 -4 src/sys/kern/uipc_syscalls.c > 1.24 +10 -15 src/sys/netinet/sctputil.c > 1.158 +4 -22 src/sys/sys/socketvar.h > Cool .. great work Robert!!! R -- Randall Stewart NSSTG - Cisco Systems Inc. 803-345-0369 <or> 803-317-4952 (cell)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?463A0198.3040507>