svn commit: r191367 - head/sys/net

Bruce Simpson bms at incunabulum.net
Wed Apr 22 08:56:01 UTC 2009


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


More information about the svn-src-all mailing list