From owner-cvs-src@FreeBSD.ORG Thu May 3 15:34:44 2007 Return-Path: X-Original-To: cvs-src@freebsd.org Delivered-To: cvs-src@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E015F16A40E; Thu, 3 May 2007 15:34:44 +0000 (UTC) (envelope-from rrs@cisco.com) Received: from sj-iport-5.cisco.com (sj-iport-5.cisco.com [171.68.10.87]) by mx1.freebsd.org (Postfix) with ESMTP id 7303C13C48A; Thu, 3 May 2007 15:34:42 +0000 (UTC) (envelope-from rrs@cisco.com) Received: from sj-dkim-7.cisco.com ([171.68.10.88]) by sj-iport-5.cisco.com with ESMTP; 03 May 2007 08:34:38 -0700 X-IronPort-AV: i="4.14,486,1170662400"; d="scan'208"; a="418277213:sNHT8905652246" Received: from sj-core-3.cisco.com (sj-core-3.cisco.com [171.68.223.137]) by sj-dkim-7.cisco.com (8.12.11/8.12.11) with ESMTP id l43FYbMi029759; Thu, 3 May 2007 08:34:37 -0700 Received: from xbh-sjc-211.amer.cisco.com (xbh-sjc-211.cisco.com [171.70.151.144]) by sj-core-3.cisco.com (8.12.10/8.12.6) with ESMTP id l43FYNAi017244; Thu, 3 May 2007 15:34:37 GMT Received: from xfe-sjc-211.amer.cisco.com ([171.70.151.174]) by xbh-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 3 May 2007 08:34:32 -0700 Received: from [127.0.0.1] ([171.68.225.134]) by xfe-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 3 May 2007 08:34:32 -0700 Message-ID: <463A0198.3040507@cisco.com> Date: Thu, 03 May 2007 11:36:56 -0400 From: Randall Stewart User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.8) Gecko/20061029 FreeBSD/i386 SeaMonkey/1.0.6 MIME-Version: 1.0 To: Robert Watson References: <200705031442.l43Egggi064069@repoman.freebsd.org> In-Reply-To: <200705031442.l43Egggi064069@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 03 May 2007 15:34:32.0222 (UTC) FILETIME=[8BBB93E0:01C78D98] DKIM-Signature: v=0.5; a=rsa-sha256; q=dns/txt; l=1914; t=1178206477; x=1179070477; c=relaxed/simple; s=sjdkim7002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=rrs@cisco.com; z=From:=20Randall=20Stewart=20 |Subject:=20Re=3A=20cvs=20commit=3A=20src/sys/kern=20uipc_debug.c=20uipc_ sockbuf.c=20uipc_socket.c=0A=20=20=20=20=20=20=20=20=20uipc_syscalls.c=20s rc/sys/netinet=20sctputil.c=20src/sys/sys=20socketvar.h |Sender:=20; bh=LPtDY1euVNg3n6Bi2cIJHASmqQDNJSMpQEVlXZkXhZM=; b=Aho234mb55MRlknoB/j5SikCTXIehVfSwMnmxaLsFWjT/NeGbw/d1I8f/H15FTMceOoLfYnT UoUzNQY+GaGC4wnQk8D8TkMZHwabp8IfllF3AHbq6J9WLRiGQ6RLo5eG; Authentication-Results: sj-dkim-7; header.From=rrs@cisco.com; dkim=pass (sig from cisco.com/sjdkim7002 verified; ); 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 X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 May 2007 15:34:45 -0000 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 803-317-4952 (cell)