[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