Date: Sat, 24 May 2008 16:56:32 +0200 From: "Christian Zachariasen" <chrizach@gmail.com> To: "Coleman Kane" <cokane@freebsd.org>, "FreeBSD Mailing Lists" <freebsd-questions@freebsd.org> Subject: Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd)) Message-ID: <4a89d1190805240756j7a3d6fc1l7773ed1a6d98dce@mail.gmail.com> In-Reply-To: <1211640498.1510.8.camel@localhost> References: <20080524111715.T64552@fledge.watson.org> <1211640498.1510.8.camel@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, May 24, 2008 at 4:48 PM, Coleman Kane <cokane@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@FreeBSD.org> > > To: arch@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@FreeBSD.org> > > To: arch@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4a89d1190805240756j7a3d6fc1l7773ed1a6d98dce>