Non-MPSAFE network stack component de-orbit burn schedule
This page documents proposed schedules for removing infrastructure for non-MPSAFE network stack components.
NET_NEEDS_GIANT removal
This historical option, linked to the debug.mpsafenet sysctl, caused Giant to be acquired before entering the network stack via any path (system call, interrupt, netisr, etc). It was eliminated prior to 7.0-RELEASE.
Date |
Done |
Event |
18 July 2005 |
yes |
Post MPSAFE network stack plan to arch@. |
17 July 2007 |
yes |
Post NET_NEEDS_GIANT() reminder to arch@. |
27 July 2007 |
yes |
Remove NET_NEEDS_GIANT(). |
25 May 2008 |
yes |
Remove netatm. |
26 May 2008 |
yes |
Remove i4b. |
i4b details
i4b, the kernel ISDN framework, has not been updated to run in a post-MPSAFE world. It was left present in the 7.x tree, but disabled prior to 7.0-RELEASE. It has been deleted from the 8.x development tree.
Date |
Done |
Event |
18 July 2005 |
yes |
Post MPSAFE network stack plan to arch@. |
04 July 2007 |
yes |
Disconnect parts of I4B from the build. HEADS-UP to isdn@. |
17 July 2007 |
yes |
Post NET_NEEDS_GIANT() reminder to arch@. |
27 July 2007 |
yes |
Remove NET_NEEDS_GIANT(). |
22 March 2008 |
yes |
Last call to seek for help rewriting I4B to keep it alive. |
15 May 2008 |
yes |
Final announcement on isdn@ that I4B will be removed from 8/7. |
26 May 2008 |
yes |
Remove i4b from HEAD. |
?? ??? 2008 |
no |
Remove I4B from RELENG_7. |
netatm
netatm, one of three kernel ATM stacks in FreeBSD, has not been updated to run in a post-MPSAFE world. It was left present in the 7.x tree for 7.0-RELEASE, but was deleted prior to 7.1-RELEASE.
Date |
Done |
Event |
18 July 2005 |
yes |
Post MPSAFE network stack plan to arch@. |
15 March 2006 |
yes |
Post netatm removal plan. |
29 March 2006 |
yes |
Post netatm removal reminder to arch@. |
10 March 2007 |
yes |
Post netatm removal reminder to arch@. |
27 July 2007 |
yes |
Remove NET_NEEDS_GIANT(). |
10 March 2008 |
yes |
E-mail warning to arch@/net@ |
10 April 2008 |
yes |
E-mail warning to arch@/net@ |
10 May 2008 |
yes |
Removal of netatm from HEAD |
31 August 2008 |
yes |
Removal of netatm from RELENG_7 |
IFF_NEEDSGIANT removal
IFF_NEEDSGIANT allowed non-MPSAFE network device drivers to continue to run without Giant over the network stack, a list of which can be found on NetworkNeedsGiant. As of 7.0-RELEASE, no widely used network device drivers other than those using the USB stack used IFF_NEEDSGIANT. The framework was be removed from 8.x prior to 8.0-RELEASE, along with drivers that still depended on it, as there is a new fully MPSAFE USB stack in the 8.x branch.
Date |
Done |
Event |
18 July 2005 |
yes |
Post MPSAFE network stack plan to arch@, affected driver list. |
22 May 2006 |
yes |
Post MPSAFE reminder e-mail to arch@. |
24 December 2007 |
yes |
Post proposed schedule for flag and infrastructure removal, affected driver list. |
26 January 2008 |
yes |
Repost proposed schedule for flag and infrastructure removal, updated affected driver list. |
3 February 2007 |
yes |
Repost proposed schedule for flag and infrastructure removal, updated affected driver list. |
26 February 2008 |
yes |
Adjust boot-time printf for affected drivers to generate a loud warning, post updated affected drivers list. |
7 March 2008 |
yes |
Post reminder e-mail to arch@. |
21 May 2008 |
yes |
Post reminder e-mail to arch@. |
26 May 2008 |
yes |
Post HEADS UP of impending driver disabling, updated affected driver list. |
26 June 2008 |
no |
Disable build of all drivers requiring IFF_NEEDSGIANT, post updated affected driver list. |
26 September 2008 |
no |
Post HEADS UP of impending driver removal, updated affected driver list. |
26 October 2008 |
no |
Delete source of all drivers requiring IFF_NEEDSGIANT; remove flag and infrastructure. |
16 February 2009 |
yes |
Post MPSAFE schedule e-mail to arch@, affected driver list. |
15 March 2009 |
yes |
Disable build of all drivers requiring IFF_NEEDSGANT, post updated affected drivers list. |
16-18 April 2009 |
yes |
Delete sources of all drivers requiring IFF_NEEDSGIANT; remove flag and infrastructure. |
NETISR_MPSAFE
NETISR_MPSAFE allows network protocols to register input handlers that automatically acquire the Giant lock. This has been removed in 8.x and will not appear in 8.0-RELEASE.
Date |
Done |
Event |
18 July 2005 |
yes |
Post MPSAFE network stack plan to arch@. |
26 May 2008 |
yes |
Post NETISR_MPSAFE removal plan. |
4 July 2008 |
yes |
Remove NETISR_MPSAFE, add explicit Giant locking to remaining handlers. |