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

Randall Stewart rrs at cisco.com
Thu May 3 15:34:45 UTC 2007


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)


More information about the cvs-src mailing list