Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 May 2008 10:48:18 -0400
From:      Coleman Kane <cokane@FreeBSD.org>
To:        Robert Watson <rwatson@FreeBSD.org>
Cc:        arch@FreeBSD.org, current@FreeBSD.org, net@FreeBSD.org
Subject:   Re: HEAD UP: non-MPSAFE network drivers to be disabled (was: 8.0 network stack MPsafety goals (fwd))
Message-ID:  <1211640498.1510.8.camel@localhost>
In-Reply-To: <20080524111715.T64552@fledge.watson.org>
References:  <20080524111715.T64552@fledge.watson.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-WsmYbFHJm0XxVixg4dwD
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Sat, 2008-05-24 at 11:20 +0100, Robert Watson wrote:
> Dear all:
>=20
> Just as a reminder, we've just about reached the one month date before=20
> IFF_NEEDSGIANT drivers are disabled in the build.  You can find a descrip=
tion=20
> of the general problem and list of specific drivers below.
>=20
> As USB work is on-going, I will *not* disable the USB drivers at this tim=
e,=20
> but all other drivers in the list below will be disabled on 26 June.  The=
y=20
> will remain in the tree, easily accessible for patch distribution and=20
> re-enabling, until October, when any remaining non-MPSAFE drivers will be=
=20
> deleted in 8.x.  FreeBSD 8.0 will not ship with compatibility shims to su=
pport=20
> non-MPSAFE network device drivers.
>=20
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
>=20
> ---------- 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)
>=20
>=20
> Only a few days after predicted, this is a reminder that IFF_NEEDSGIANT n=
etwork=20
> drivers are going to stop working in the forseeable future.  Please revie=
w the=20
> attached driver list, and if you depend on or care about a Giant-dependen=
t=20
> device driver, take action to make sure it doesn't remain on the list in =
a=20
> month's time!
>=20
> (As far as I'm aware, the list has not changed since my December posting.=
)
>=20
> Robert N M Watson
> Computer Laboratory
> University of Cambridge
>=20
> ---------- 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
>=20
>=20
> Dear all:
>=20
> With the 7.0 release around the corner, many developers are starting to t=
hink=20
> about (and in quite a few cases, work on) their goals for 8.0.  One of ou=
r=20
> on-going kernel projects has been the elimination of the Giant lock, and =
that=20
> project has transformed into one of optimizating behavior on increasing n=
umbers=20
> of processors.
>=20
> In 7.0, despite the noteworth accomplishment of eliminating debug.mpsasfe=
net=20
> and conditional network stack Gian acquisition, we were unable to fully=20
> eliminate the IFF_NEEDSGIANT flag, which controls the conditional acquisi=
tion=20
> of the Giant lock around non-MPSAFE network device drivers.  Primarily th=
ese=20
> drivers are aging ISA network device drivers, although there are some=20
> exceptions, such as the USB stack.
>=20
> This e-mail proposes the elimination of the IFF_NEEDSGIANT flag and assoc=
iated=20
> infrastructure in FreeBSD 8.0, meaning that all network device drivers mu=
st be=20
> able to operate without the Giant lock (largely the case already).  Remai=
ning=20
> drivers using the IFF_NEEDSGIANT flag must either be updated, or less ide=
ally,=20
> removed.  I propose the following schedule:
>=20
> Date		Goals
> ----		-----
> 26 Dec 2007	Post proposed schedule for flag and infrastructure removal
>  		Post affected driver list
>=20
> 26 Jan 2008	Repost proposed schedule for flag and infrastructure removal
>  		Post updated affected driver list
>=20
> 26 Feb 2008	Adjust boot-time printf for affect drivers to generate a loud
>  		warning.
>  		Post updated affected driver list
>=20
> 26 May 2008	Post HEADS UP of impending driver disabling
>  		Post updated affected driver list
>=20
> 26 Jun 2008	Disable build of all drivers requiring IFF_NEEDSGIANT
>  		Post updated affected driver list
>=20
> 26 Sep 2008	Post HEADS up of impending driver removal
>  		Post updated affected driver list
>=20
> 26 Oct 2008	Delete source of all drivers requiring IFF_NEEDSGIANT
>  		Remove flag and infrastructure
>=20
> Here is a list of potentially affected drivers:
>=20
> 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
>=20
> In some cases, the requirement for Giant is a property of a subsystem the=
=20
> driver depends on as the driver itself; for example, the tty subsystem fo=
r SLIP=20
> and PPP, and the USB subsystem for a number of USB ethernet and wireless=20
> drivers.  With most of a year before to go on the proposed schedule, my h=
ope is=20
> that we will have lots of time to address these issues, but wanted to get=
 a=20
> roadmap out from a network protocol stack architecture perspective so tha=
t=20
> device driver and subsystem authors could have a schedule in mind.
>=20
> FYI, the following drivers also reference IFF_NEEDSGIANT, but only in ord=
er to=20
> provide their own conditional MPSAFEty, which can be removed without affe=
cting=20
> device driver functionality (I believe):
>=20
> 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
>=20
> Developers and users of the above drivers are heavily encouraged to updat=
e the=20
> drivers to remove dependence on Giant, and/or make other contingency plan=
s.
>=20
> 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.

--=20
Coleman Kane

--=-WsmYbFHJm0XxVixg4dwD
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEABECAAYFAkg4KqwACgkQcMSxQcXat5cm3ACdFy/ZZLIbqAbfijtLjUtyPHd5
LqwAn1dzu8Jra/MzMnjWibA7G3z6YIrs
=u5Qw
-----END PGP SIGNATURE-----

--=-WsmYbFHJm0XxVixg4dwD--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1211640498.1510.8.camel>