Date: Fri, 1 Jun 2007 11:13:10 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: current@FreeBSD.org Subject: NET_NEEDS_GIANT removal Message-ID: <20070601105521.D77697@fledge.watson.org>
next in thread | raw e-mail | index | archive | help
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 removed. - 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070601105521.D77697>