From owner-svn-src-all@FreeBSD.ORG Wed Apr 22 08:56:00 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DDE6D1065673; Wed, 22 Apr 2009 08:56:00 +0000 (UTC) (envelope-from bms@incunabulum.net) Received: from out2.smtp.messagingengine.com (out2.smtp.messagingengine.com [66.111.4.26]) by mx1.freebsd.org (Postfix) with ESMTP id AF50D8FC21; Wed, 22 Apr 2009 08:56:00 +0000 (UTC) (envelope-from bms@incunabulum.net) Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id 9F18D31DFC1; Wed, 22 Apr 2009 04:55:59 -0400 (EDT) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by compute2.internal (MEProxy); Wed, 22 Apr 2009 04:55:59 -0400 X-Sasl-enc: Bayzld7vndKSsmz363Evri6G3XfztZYnIRiM8zJmLvJ1 1240390559 Received: from [192.168.123.18] (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id D6C60289B5; Wed, 22 Apr 2009 04:55:58 -0400 (EDT) Message-ID: <49EEDB9C.8080409@incunabulum.net> Date: Wed, 22 Apr 2009 09:55:56 +0100 From: Bruce Simpson User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Robert Watson References: <200904212243.n3LMhW48027008@svn.freebsd.org> In-Reply-To: <200904212243.n3LMhW48027008@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191367 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Apr 2009 08:56:01 -0000 Robert Watson wrote: > ... > Log: > Start to address a number of races relating to use of ifnet pointers > after the corresponding interface has been destroyed: > > (1) Add an ifnet refcount, ifp->if_refcount. Initialize it to 1 in > if_alloc(), and modify if_free_type() to decrement and check the > refcount. > > (2) Add new if_ref() and if_rele() interfaces to allow kernel code > walking global interface lists to release IFNET_[RW]LOCK() yet > keep the ifnet stable. Currently, if_rele() is a no-op wrapper > around if_free(), but this may change in the future. > Thanks. I'll try to digest this badly needed work, but might not get around to updating SSM to use it straight away. As you probably saw from doco, it's something which SSM bangs right into, inpcbs after all last longer than ifnets. I do have a JKH task or three that I could mentor, though, and one of those would be for an intermediate INPCB-to-multicast-group map. I suspect the more serious commercial TCP/IP implementations have got that for scalability, and HEAD is the place to do it. As more apps begin to use multicast in seriousness, it's worth looking at. cheers BMS