rwatson at FreeBSD.org
Fri Jun 1 10:13:11 UTC 2007
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
Robert N M Watson
University of Cambridge
More information about the freebsd-current