Date: Mon, 8 Jul 2002 17:28:48 -0500 (CDT) From: Mike Silbersack <silby@silby.com> To: Peter Wemm <peter@wemm.org> Cc: Luigi Rizzo <luigi@FreeBSD.org>, Don Lewis <dl-freebsd@catspoiler.org>, <cvs-committers@FreeBSD.org>, <cvs-all@FreeBSD.org> Subject: Re: cvs commit: src/sys/dev/fxp if_fxp.c Message-ID: <20020708171914.C19349-100000@patrocles.silby.com> In-Reply-To: <20020708215808.B34E53808@overcee.wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 8 Jul 2002, Peter Wemm wrote: > Luigi Rizzo wrote: > > On Mon, Jul 08, 2002 at 02:39:35PM -0700, Don Lewis wrote: > > ... > > > I just started seeing fxp timeouts on my -current box since I upgraded > > > the morning of July 7. > > > > and why is this surprising ? This is the expected behaviour if you > > cannot transmit a packet within 5 seconds... > > I've suddenly started getting them too. > .. > fxp0: device timeout > fxp0: device timeout > .. > > It is suprising because it appears to be working fine and has been working > fine for years. It seems the only relevant thing that has recently changed > is that you touched the fxp driver.. > > Cheers, > -Peter There must be an oddity in how the fxp driver handles the timeout handling vs other drivers. Hm, I see the problem. The fxp driver releases transmit mbufs in both fxp_intr _and_ in fxp_tick. fxp_tick needs code such as: for (txp = sc->cbl_first; sc->tx_queued && (txp->cb_status & FXP_CB_STATUS_C) != 0; txp = txp->next) { if (txp->mb_head != NULL) { m_freem(txp->mb_head); txp->mb_head = NULL; } sc->tx_queued--; } sc->cbl_first = txp; + if (sc->tx_queued == 0) + ifp->if_timer = 0; Give that a whirl and see if it solves the problem. Mike "Silby" Silbersack To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020708171914.C19349-100000>