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-head
mailing list