[Click] fix to polling patch (was: Re: polling patch for e1000-7.3.20)

Nicholas Weaver nweaver at ICSI.Berkeley.EDU
Mon Jan 22 11:18:21 EST 2007


Strange...

The first time I installed the configuration, it froze up after ~62
packets on the input.  Ununstalled & reinstalled the bridge and its
quite happy now.

So thanks, this seems to be working now with a polling bridge code.

On Sat, Jan 20, 2007 at 06:36:30PM -0800, Massimiliano Poletto composed:
> Nick, Roman, I'm sorry that you're having problems with the patch.
> Unfortunately I don't have an 82571 available for testing right now
> (just some 82546's), though maybe Matt can try to reproduce your
> problem.
> 
> BUT:
> 
> I was reviewing the patch today, and noticed a glaring bug.  In short,
> the code in e1000_watchdog_1() in the patch was actually based on
> e1000_82547_tx_fifo_stall(), not e1000_watchdog().  This means that
> e1000_rx_refill() was calling the wrong code, so that statistics were
> not being updated.  But at the same time I had removed a call to
> mod_timer() from the bottom of e1000_watchdog() (as if the previous
> problem didn't exist), so when other parts of the driver called
> adapter->watchdog_timer.function(), the watchdog timer's timeout
> wasn't being reset.
> 
> I don't know what other side-effects this might have, but it may be
> responsible for the problems you are seeing.  It is certainly why the
> ifconfig counters do not increase.
> 
> I don't know how this happened---very stupid of me.  I'm sorry to have
> wasted your time with a broken patch, and enclose a new one that fixes
> this problem.  Please let me know if you continue to see problems, and
> we'll try to reproduce them and hopefully fix them.
> 
> max
> 
> 
> On 1/19/07, Roman Chertov <rchertov at purdue.edu> wrote:
> >Nicholas Weaver wrote:
> >> On Fri, Jan 19, 2007 at 02:26:41PM -0500, Roman Chertov composed:
> >>> Nicholas Weaver wrote:
> >>>> Suggestions?
> >>> Try to comment out everything between e1000_irq_disable(adapter) and
> >>> dev->polling = 2; in e1000_poll_on.  I've noticed that on my machine the
> >>> driver doesn't transmit with these lines.  It appears that it fails to
> >>> reinitialize.  This is one the PCI-E 82571EB dual port card.
> >>
> >> Thanks, this worked.  (e1000_poll_on being a function in the driver).
> >>
> >> Except...
> >>
> >> Now it seems to freeze up after about ~60 (usually 62) packets on the
> >> input.  This seems to be an input freeze rather than a queue full
> >> freeze, as packets are going in/out of the queue.
> >>
> >
> >Take a look at "dmesg" there might be some watchdog messages regarding a
> >timeout.
> >
> >
> >> (reverse Roman's changs, reinstall and reboot and the input is no
> >> longer feezing up, but then the output doesn't work... ).
> >>
> >> Now for what I'm going to do TODAY I'm OK, as I'm using different
> >> ports for inputs and outputs (its load balancing for an IDS), but I'd
> >> like to figure out what/how to get this working in general.
> >>
> >
> >



-- 
Nicholas C. Weaver                               nweaver at icsi.berkeley.edu
     This message has been ROT-13 encrypted twice for higher security.


More information about the click mailing list