Skip site navigation (1)Skip section navigation (2)
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>