Date: Wed, 22 Apr 2009 09:55:56 +0100 From: Bruce Simpson <bms@incunabulum.net> To: Robert Watson <rwatson@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r191367 - head/sys/net Message-ID: <49EEDB9C.8080409@incunabulum.net> In-Reply-To: <200904212243.n3LMhW48027008@svn.freebsd.org> References: <200904212243.n3LMhW48027008@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49EEDB9C.8080409>