Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Apr 2005 18:15:56 +0200
From:      Roland Smith <rsmith@xs4all.nl>
To:        freebsd-stable@freebsd.org
Cc:        Jaimie Garner <jaimie@onsitepcs.net>
Subject:   Re: Problems with NIC
Message-ID:  <20050413161556.GA82955@slackbox.xs4all.nl>
In-Reply-To: <200504130550.27484.jaimie@onsitepcs.net>
References:  <200504130550.27484.jaimie@onsitepcs.net>

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

--fUYQa+Pmc3FrFX/N
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Apr 13, 2005 at 05:50:27AM +0000, Jaimie Garner wrote:
>=20
> This just started happing this evening not sure what is up.  The nic
> is a Linksys LNE 100 V 4.something I forget now.  I had some weird
> errors a while back when I first installed 5.3-RELEASE but i disabled
> ACPI and they seemed to work fine.
>=20
> Here is some info
> dc0: <ADMtek AN985 10/100BaseTX> port 0x1000-0x10ff mem 0xfc001000-0xfc00=
13ff=20
> irq 9 at device 12.0 on pci0on pci0
> miibus0: <MII bus> on dc0i0
> ukphy0: <Generic IEEE 802.3u media interface> on miibus0
> ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
> dc0: Ethernet address: 00:03:6d:16:09:1e
> dc0: if_start running deferred for Giant
> dc0: [GIANT-LOCKED]
>=20
> This looks odd especaly this:
>  Interrupt storm detected on "irq9: dc0 ohci0"; throttling interrupt sour=
ce

Looks like the USB bus (ohci0) and your network card are sharing an
interrupt line. My guess would be that a USB device generates too much
interrupts causing the kernel to throttle them. This then screws up the
network.

According to polling(4), the dc driver supports polling instead of using
an interrupt line. You could try rebuilding the kernel with polling
support and see if the problem goes away.

Or you could disable ohci0 in the bios, or plug the offending USB device
into another port.

Or you could try to force the dc triver to use another interrupt
line. See the acpi manual page and google for 'irq routing freebsd'. I
_think_ you should do the following: 'ps -xa|grep irq' will show which
irq's are free. Let's say that irq 10 is still free. Now you'd have to
find the pci address of the network card with 'pciconf -l -v|grep dc0'.=20
Let's say you get something like 'dc0@pci0:11:0' You can now tune the
interrupt by setting the following in /boot/device.hints:

hw.acpi.pci.link.0.11.0.irq=3D10

HTH,

Roland
--=20
R.F. Smith                           /"\    ASCII Ribbon Campaign
r s m i t h @ x s 4 a l l . n l      \ /    No HTML/RTF in e-mail
http://www.xs4all.nl/~rsmith/         X     No Word docs in e-mail
public key: http://www.keyserver.net / \    Respect for open standards

--fUYQa+Pmc3FrFX/N
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iD8DBQFCXUW8EnfvsMMhpyURAmzUAJkBB0/ccGJghKnncYfMnkfLtVvl0QCfW9eU
bfHodfnD3xXgR+ZZIcYGeAE=
=Eysg
-----END PGP SIGNATURE-----

--fUYQa+Pmc3FrFX/N--



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