public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Roger Luethi <rl@hellgate.ch>
To: "H.Rosmanith (Kernel Mailing List)" <kernel@wildsau.idv.uni.linz.at>
Cc: Rob Myers <rob.myers@gtri.gatech.edu>, l <linux-kernel@vger.kernel.org>
Subject: Re: need contact of via-rhine developers
Date: Tue, 20 Aug 2002 19:55:08 +0200	[thread overview]
Message-ID: <20020820175507.GA19273@k3.hellgate.ch> (raw)
In-Reply-To: <200208201639.g7KGddXl020053@wildsau.idv.uni.linz.at>

On Tue, 20 Aug 2002 18:39:38 +0200, H.Rosmanith (Kernel Mailing List) wrote:
> thanks! that fixed the transmit-timeouts! they happened quite frequently.
> the more traffic you'd submit, the more timeouts. e.g. , when viewing
> icture over the net (e.g. xv running on a different host), I'd see about
> 12 timeouts per minute(raw estimation).
> 
> any idea what's confusing the chip in the first place?

After a transmission error (e.g. excessive collisions) the chip stops to
let the driver handle it. The driver does its thing and restarts the
transmission engine. Problem is, the ring buffer pointer on the chip
skidded too far and hence takes up work from the wrong entry.

If an error occured on entry n, the chip continues on n+2. The driver stops
harvesting transmitted buffers because the next entry in the ring (n+1)
remains marked as owned by the driver. A few more packets may be sent after
the restart, then the card stalls. After a while the watchdog kicks in to
resets chip and buffers. Transmission continues.

You can verify this easily by dumping ring pointer information and the
status bits associated with the ring buffer.

The fix is to have the interrupt handler set the ring buffer pointer to
what the driver knows to be the current entry.

Btw: The stalling you've seen, was that at 10 or 100 Mbps? Hub or Switch?
With debug level 2 (and fixed driver), do you find Abort or Underrun errors
in your log in situations where stalling occured with the old driver?

Roger

  reply	other threads:[~2002-08-20 17:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1029854455.10084.136.camel@ransom>
2002-08-20 16:39 ` need contact of via-rhine developers H.Rosmanith (Kernel Mailing List)
2002-08-20 17:55   ` Roger Luethi [this message]
2002-08-20 21:59     ` H.Rosmanith (Kernel Mailing List)
2002-08-20 23:24       ` H.Rosmanith (Kernel Mailing List)
     [not found] <20020820232624.GA32608@k3.hellgate.ch>
2002-08-20 23:38 ` H.Rosmanith (Kernel Mailing List)
2002-08-20 11:49 H.Rosmanith (Kernel Mailing List)
2002-08-20 12:48 ` Rob Myers
2002-08-20 13:44   ` H.Rosmanith (Kernel Mailing List)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020820175507.GA19273@k3.hellgate.ch \
    --to=rl@hellgate.ch \
    --cc=kernel@wildsau.idv.uni.linz.at \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rob.myers@gtri.gatech.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox