Reminder: intent to remove NET_NEEDS_GIANT() in 7.0

Robert Watson rwatson at FreeBSD.org
Mon May 22 13:35:24 UTC 2006


As part of preparing for the FreeBSD Developer Summit at BSDCan a couple of 
weeks ago, I reviewed remaining components of the network stack relying on 
NET_NEEDS_GIANT() to operate.  The list was essentially this:

- i4b
- netatm
- ng_h4
- KAME IPSEC
- IP encapsulation in IPX

The intent remains to remove compatibility support for non-MPSAFE network 
stack protocols for 7.0; the compatibility mode adds significant run-time 
overhead to the operation of the entire network stack when in operation.  We 
cannot continue to operate supported network protocol features with Giant 
compatibility going forward.  If you are a maintainer of one of the above 
subsystems, be warned that, effective August 1, 2006, you will no longer be 
able to rely on the socket and network driver layers acquiring Giant to 
synchronize data structures in your subsystem in the CVS HEAD.  Please do 
whatever work is necessary to allow your network subsystem to operate under 
the current kernel synchronization architecture if you wish it to remain in 
the tree, as consumers of NET_NEEDS_GIANT() will start producing compile 
errors in the CVS HEAD as of August 1.

As previously announced on this list, netatm is reaching thee end of its 
mortal life span in absence of a maintainer (it is already known not to work 
as a result of several years of decay), and unless it suddenly becomes MPSAFE 
and functional, will be removed from the CVS HEAD on June 30.

I'm happy to help provide advice and information on migrating to a Giant-free 
synchronization model, but having already adopted several network protocols 
for this purpose (netatalk, netnatm, netipx, ...), I don't have time to 
maintain any additional ones, so need to rely on other maintainers to update 
these components.

Thanks,

Robert N M Watson


More information about the freebsd-arch mailing list