HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0
network stack MPsafety goals (fwd))
Christian Zachariasen
chrizach at gmail.com
Sat May 24 14:56:33 UTC 2008
On Sat, May 24, 2008 at 4:48 PM, Coleman Kane <cokane at freebsd.org> wrote:
> 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
Just out of curiousity - is there a guide available that gives some pointers
on how to go about removing the GIANT-parts of the drivers? What would one
replace it with? I'm not sure I would be up to the task, but I'd find it
interesting to actually understand the process.
Christian Zachariasen
More information about the freebsd-questions
mailing list