Robert Watson rwatson at
Fri Jun 1 10:13:11 UTC 2007

Dear all,

Another of the things in flight for 7.0 is the removal of NET_NEEDS_GIANT. 
This is the compatibility code that allows non-MPSAFE network protocols to 
operate--when they are compiled into the kernel, Giant is forced over the 
entire network stack.  This allows them to run moderately safely, but 
eliminates use of more than one processor at a time in any part of the network 
stack, as well as increasing contention on Giant for any other non-MPSAFE 
components, requiring Giant be acquired in possible shared ithreads, etc. 
The components currently requiring Giant are:

i4b		- ISDN implementation
netatm		- One of three ATM implementations
ng_h4		- tty line discipline for bluetooth serial (?)
KAME IPSEC	- One of two IPSEC implementations
IPX over IP	- IPX over IP tunnel support

Of these, I have patches for IPX over IP (but no testers despite several 
e-mails to mailing lists), and George has patches that add IPv6 support to 
FAST_IPSEC and remove KAME IPSEC, currently in testing on the net@ mailing 
list.  Skip Ford has been working on locking for netatm, but I'm not sure what 
the current status is.  Bjoern has been starting to look at i4b but has let me 
know that it is unlikely this will be done before 7.1.  I have no information 
on the status of ng_h4, but it may well be that its involvement in the tty 
code puts it in a tricky situation, as the tty code is not MPSAFE. Right now 
the strategy for the next two weeks is as follows:

- Locking for IPX over IP will go into CVS or, if I still can't find any
   testers, IPX over IP support will be removed.  Note that normal IPX/SPX
   support is unaffected, as that has been MPSAFE for some time.

- IPv6 support for FAST_IPSEC will go into the tree, and KAME IPSEC will be

- NET_NEEDS_GIANT shims will be removed from the tree.

- i4b, netatm, and ng_h4 will be disconnected from the build, but not deleted.

Since i4b and netatm both have active advocates looking to introduce support 
for MPSAFE operation, they will remain undeleted in CVS through the 7.0 
release, making distributing locking patches easier.  If they haven't become 
MPSAFE by 7.1, then we will then delete them.  Obviously, they'll remain in 
Attic indefinitely should someone be available to do the work necessary to 
resurrect them.

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the freebsd-current mailing list