Skip site navigation (1)Skip section navigation (2)
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>