Skip site navigation (1)Skip section navigation (2)
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>