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