Date: Tue, 22 Apr 2003 15:27:48 -0700 (PDT) From: John Polstra <jdp@polstra.com> To: net@freebsd.org Subject: Re: em net (optical GigE) driver hangs? Message-ID: <200304222227.h3MMRm5E009574@strings.polstra.com> In-Reply-To: <FE045D4D9F7AED4CBFF1B3B813C8533701B36384@mail.sandvine.com> References: <FE045D4D9F7AED4CBFF1B3B813C8533701B36384@mail.sandvine.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <FE045D4D9F7AED4CBFF1B3B813C8533701B36384@mail.sandvine.com>, Don Bowman <don@sandvine.com> wrote: > From: John Polstra [mailto:jdp@polstra.com] > > I think the RELENG_4 version is likely to eliminate the problem. See > > the comment near the define of EM_RDTR in if_em.h (in the RELENG_4 > > version of that file, of course). > > We saw that, but we are using DEVICE_POLLING, so assumed it was not > the issue. Assuming the RDTR-related hangs are caused by a chip bug, I think they would happen if the RDTR register was set to a nonzero value, whether or not you were using interrupts in the device driver. > We think instead its another problem, which is also solved in the > RELENG_4 driver, in that em_poll() calls em_start() if device is > running and there are pkts on the queue. em_start() re-arms the > timer, holding off the wdog forever. That may well be true. But the non-firing of the watchdog timer is a separate problem from the occurrence of the hangs in the first place. In other words, if everything were working perfectly you wouldn't need the watchdog timer at all. John -- John Polstra John D. Polstra & Co., Inc. Seattle, Washington USA "Disappointment is a good sign of basic intelligence." -- Chögyam Trungpa
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304222227.h3MMRm5E009574>