HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0
network stack MPsafety goals (fwd))
Coleman Kane
cokane at FreeBSD.org
Sat May 24 15:49:28 UTC 2008
On Sat, 2008-05-24 at 11:20 +0100, Robert Watson wrote:
> Dear all:
>
> Just as a reminder, we've just about reached the one month date before
> IFF_NEEDSGIANT drivers are disabled in the build. You can find a description
> of the general problem and list of specific drivers below.
>
> As USB work is on-going, I will *not* disable the USB drivers at this time,
> but all other drivers in the list below will be disabled on 26 June. They
> will remain in the tree, easily accessible for patch distribution and
> re-enabling, until October, when any remaining non-MPSAFE drivers will be
> deleted in 8.x. FreeBSD 8.0 will not ship with compatibility shims to support
> non-MPSAFE network device drivers.
>
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
>
> ---------- Forwarded message ----------
> Date: Sun, 3 Feb 2008 20:59:05 +0000 (GMT)
> From: Robert Watson <rwatson at FreeBSD.org>
> To: arch at FreeBSD.org
> Subject: 8.0 network stack MPsafety goals (fwd)
>
>
> Only a few days after predicted, this is a reminder that IFF_NEEDSGIANT network
> drivers are going to stop working in the forseeable future. Please review the
> attached driver list, and if you depend on or care about a Giant-dependent
> device driver, take action to make sure it doesn't remain on the list in a
> month's time!
>
> (As far as I'm aware, the list has not changed since my December posting.)
>
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
>
> ---------- Forwarded message ----------
> Date: Mon, 24 Dec 2007 10:43:28 +0000 (GMT)
> From: Robert Watson <rwatson at FreeBSD.org>
> To: arch at FreeBSD.org
> Subject: 8.0 network stack MPsafety goals
>
>
> Dear all:
>
> With the 7.0 release around the corner, many developers are starting to think
> about (and in quite a few cases, work on) their goals for 8.0. One of our
> on-going kernel projects has been the elimination of the Giant lock, and that
> project has transformed into one of optimizating behavior on increasing numbers
> of processors.
>
> In 7.0, despite the noteworth accomplishment of eliminating debug.mpsasfenet
> and conditional network stack Gian acquisition, we were unable to fully
> eliminate the IFF_NEEDSGIANT flag, which controls the conditional acquisition
> of the Giant lock around non-MPSAFE network device drivers. Primarily these
> drivers are aging ISA network device drivers, although there are some
> exceptions, such as the USB stack.
>
> This e-mail proposes the elimination of the IFF_NEEDSGIANT flag and associated
> infrastructure in FreeBSD 8.0, meaning that all network device drivers must be
> able to operate without the Giant lock (largely the case already). Remaining
> drivers using the IFF_NEEDSGIANT flag must either be updated, or less ideally,
> removed. I propose the following schedule:
>
> Date Goals
> ---- -----
> 26 Dec 2007 Post proposed schedule for flag and infrastructure removal
> Post affected driver list
>
> 26 Jan 2008 Repost proposed schedule for flag and infrastructure removal
> Post updated affected driver list
>
> 26 Feb 2008 Adjust boot-time printf for affect drivers to generate a loud
> warning.
> Post updated affected driver list
>
> 26 May 2008 Post HEADS UP of impending driver disabling
> Post updated affected driver list
>
> 26 Jun 2008 Disable build of all drivers requiring IFF_NEEDSGIANT
> Post updated affected driver list
>
> 26 Sep 2008 Post HEADS up of impending driver removal
> Post updated affected driver list
>
> 26 Oct 2008 Delete source of all drivers requiring IFF_NEEDSGIANT
> Remove flag and infrastructure
>
> Here is a list of potentially affected drivers:
>
> Name Bus Man page description
> --- --- --------------------
> ar ISA/PCI synchronous Digi/Arnet device driver
> arl ISA Aironet Arlan 655 wireless network adapter driver
> awi PCCARD AMD PCnetMobile IEEE 802.11 PCMCIA wireless network
> driver
> axe USB ASIX Electronics AX88172 USB Ethernet driver
> cdce USB USB Communication Device Class Ethernet driver
> cnw PCCARD Netwave AirSurfer wireless network driver
> cs ISA/PCCARD Ethernet device driver
> cue USB CATC USB-EL1210A USB Ethernet driver
> ex ISA/PCCARD Ethernet device driver for the Intel EtherExpress
> Pro/10 and Pro/10+
> fe CBUS/ISA/PCCARD Fujitsu MB86960A/MB86965A based Ethernet adapters
> ic I2C I2C bus system
> ie ISA Ethernet device driver
> kue USB Kawasaki LSI KL5KUSB101B USB Ethernet driver
> oltr ISA/PCI Olicom Token Ring device driver
> plip PPBUS printer port Internet Protocol driver
> ppp TTY point to point protocol network interface
> ray PCCARD Raytheon Raylink/Webgear Aviator PCCard driver
> rue USB RealTek RTL8150 USB to Fast Ethernet controller driver
> rum USB Ralink Technology USB IEEE 802.11a/b/g wireless
> network device
> sbni ISA/PCI Granch SBNI12 leased line modem driver
> sbsh PCI Granch SBNI16 SHDSL modem device driver
> sl TTY slip network interface
> snc ISA/PCCARD National Semiconductor DP8393X SONIC Ethernet adapter
> driver
> sr ISA/PCI synchronous RISCom/N2 / WANic 400/405 device driver
> udav USB Davicom DM9601 USB Ethernet driver
> ural USB Ralink Technology RT2500USB IEEE 802.11 driver
> xe PCCARD Xircom PCMCIA Ethernet device driver
> zyd USB ZyDAS ZD1211/ZD1211B USB IEEE 802.11b/g wireless
> network device
>
> In some cases, the requirement for Giant is a property of a subsystem the
> driver depends on as the driver itself; for example, the tty subsystem for SLIP
> and PPP, and the USB subsystem for a number of USB ethernet and wireless
> drivers. With most of a year before to go on the proposed schedule, my hope is
> that we will have lots of time to address these issues, but wanted to get a
> roadmap out from a network protocol stack architecture perspective so that
> device driver and subsystem authors could have a schedule in mind.
>
> FYI, the following drivers also reference IFF_NEEDSGIANT, but only in order to
> provide their own conditional MPSAFEty, which can be removed without affecting
> device driver functionality (I believe):
>
> Name Bus Man page description
> --- --- --------------------
> ce PCI driver for synchronous Cronyx Tau-PCI/32 WAN adapters
> cp PCI driver for synchronous Cronyx Tau-PCI WAN adapters
> ctau ISA driver for synchronous Cronyx Tau WAN adapters
> cx ISA driver for synchronous/asynchronous Cronyx Sigma WAN
> adapters
>
> Developers and users of the above drivers are heavily encouraged to update the
> drivers to remove dependence on Giant, and/or make other contingency plans.
>
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
I've created a quick table of these at the following location:
http://wiki.freebsd.org/NetworkNeedsGiant
Please everyone feel free to fill in the blanks. I'll try to do it as
well as time permits.
--
Coleman Kane
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20080524/b30b446f/attachment.pgp
More information about the freebsd-net
mailing list