Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Oct 2006 22:34:25 -0400
From:      Kris Kennaway <kris@obsecurity.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Patch available for shared em interrupts (Re: em, bge, network problems survey.)
Message-ID:  <20061006023424.GA86250@xor.obsecurity.org>
In-Reply-To: <20061005200552.GA80162@xor.obsecurity.org>
References:  <45244053.6030706@samsco.org> <20061005200552.GA80162@xor.obsecurity.org>

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

--X1bOJ3K7DJ5YkBrT
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Oct 05, 2006 at 04:05:52PM -0400, Kris Kennaway wrote:
> On Wed, Oct 04, 2006 at 05:14:27PM -0600, Scott Long wrote:
> > All,
> >=20
> > I'm seeing some patterns here with all of the network driver problem=20
> > reports, but I need more information to help narrow it down further.
> > I ask all of you who are having problems to take a minute to fill
> > out this survey and return it to Kris Kennaway (on cc:) and myself.
> > Thanks.
> >=20
> > 1. Are you experiencing network hangs and/or "timeout" messages on the=
=20
> > console?  If yes, please provide a _brief_ description of the problem.
>=20
> OK, next question, to all em users:
>=20
> If your em device is using a shared interrupt, and you are NOT
> experiencing timeout problems when using this device, please let me
> know:

Based on successful testing on a machine with shared em interrupt, the
following patch should work around the problem *in that case*.

Note that this patch will not help you if you are not using the em
driver, or if you are seeing the problem with non-shared em interrupt
(I have investigated on such outlier, which seems to be a problem with
a particular model of em hardware and not a generic problem with the
driver).

Index: if_em.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/dev/em/if_em.c,v
retrieving revision 1.65.2.18
diff -u -u -r1.65.2.18 if_em.c
--- if_em.c	25 Aug 2006 12:38:26 -0000	1.65.2.18
+++ if_em.c	5 Oct 2006 22:05:45 -0000
@@ -2086,7 +2086,7 @@
 	taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s taskq",
 	    device_get_nameunit(adapter->dev));
 	if ((error =3D bus_setup_intr(dev, adapter->res_interrupt,
-	    INTR_TYPE_NET | INTR_FAST, em_intr_fast, adapter,
+	    INTR_TYPE_NET | INTR_MPSAFE, em_intr_fast, adapter,
 	    &adapter->int_handler_tag)) !=3D 0) {
 		device_printf(dev, "Failed to register fast interrupt "
 			    "handler: %d\n", error);

Please let Scott and I know whether or not this patch works for you
(in addition to the information previously requested, if you have not
already sent it).  Unfortunately it is only a workaround, but it
points to an underlying problem with fast interrupt handlers on a
shared irq that can be studied separately.

Kris


--X1bOJ3K7DJ5YkBrT
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iD8DBQFFJcCwWry0BWjoQKURAqdUAKD5wCARFFNMFy7tQNO22XldopTwzwCg9iBy
QJ5EU/dyeUHV6D9244eeYtc=
=Bq3a
-----END PGP SIGNATURE-----

--X1bOJ3K7DJ5YkBrT--



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