mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: James E Lucas <jelucas@utdallas.edu>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: natsemi.c: Oversized(?) ethernet frame message w/ card hang
Date: Tue, 4 Feb 2003 17:22:51 -0600 (CST)	[thread overview]
Message-ID: <6893267.1044400971466.JavaMail.jelucas@utdallas.edu> (raw)

Thanks for the quick response.  The program I wrote can be retrieved at 
http://www.utdallas.edu/~jelucas/nstress.zip

I included the source file, and a binary compiled with mingw.  Of 
course, there are no guarantees on this.  I'm running it from win2k, I 
can't remember if there are any version dependencies in the program... 
should work under any NT version at least.  Syntax is nstress <IP 
address>.

Generally, what I've done is have an ssh session open to the offending 
box, and run tcpdump to watch the card.  Then I start throwing packets 
at it.  Between all the ssh traffic and the massive load, that usually 
brings things down pretty quick; within about 30 - 60 seconds.

The spec for the chip that I've been looking at can be found at  
http://www.national.com/ds/DP/DP83815.pdf

Take a look at page 82.  Now, in natsemi.c we find:

if ((desc_status&(DescMore|DescPktOK|DescRxLong)) != DescPktOK){
                        if (desc_status & DescMore) {
                                if (netif_msg_rx_err(np))
                                        printk(KERN_WARNING
                                                "%s: Oversized(?) 
Ethernet "
                                                "frame spanned multiple 
"
                                                "buffers, entry %#08x "
                                                "status %#08x.\n", 
dev->name,
                                                np->cur_rx, 
desc_status);
                                np->stats.rx_length_errors++;

Now, from page 82 of the spec:
A single packet may also cross descriptor boundaries. This is indicated 
by setting the MORE bit in all descriptors except the last one in the 
packet.


Maybe the chip is choking under load and spewing garbage into a packet? 
 Or trying to combine multiple packets...?  Perhaps this is a symptom 
and not the problem.  Maybe the chip's already plotzed, and this is a 
result before a total hang.

If that's the case, should we be resetting the chip at the point where 
the MORE alert comes in?  What would that do to open connections?  I 
don't know enough to say.

What has me wondering is that the card occasionally hangs apparently at 
random.  It may really be a chip bug that needs working around, and 
putting the card under heavy load just makes it show up by attrition.  
Or not.  I've actually been sitting on this one for a while, but it's 
nice to know I'm not the only one.

One related note: 
kernel: PCI: 00:07.3: class 604 doesn't match header type 00. Ignoring 
class.

shows up in the syslog on every bootup.  That ID belongs to a (Via) PCI 
bridge on the motherboard.  I looked through the linux-kernel archives 
and saw that this had been remarked upon a few times, but nothing much 
was made of it.  I don't know what kind of board you're using... it's 
probably not even related, but I thought it worth a mention.

Sincerely,
James Lucas

             reply	other threads:[~2003-02-04 23:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-04 23:22 James E Lucas [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-02-04 21:23 James E Lucas
2003-02-04 22:44 ` Alan Cox

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=6893267.1044400971466.JavaMail.jelucas@utdallas.edu \
    --to=jelucas@utdallas.edu \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    /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

Powered by JetHome