From: Ivan Gurdiev <ivangurdiev@yahoo.com>
To: "Richard B. Johnson" <root@chaos.analogic.com>
Cc: Andy Carlson <naclos@andyc.dyndns.org>, linux-kernel@vger.kernel.org
Subject: Re: Via-Rhine stalls - transmit errors
Date: Thu, 21 Mar 2002 18:33:13 -0800 (PST) [thread overview]
Message-ID: <20020322023313.99572.qmail@web10108.mail.yahoo.com> (raw)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=us-ascii, Size: 4333 bytes --]
Okay...let's see.
I've been playing around with Urban's patch
and now I'll risk making a fool of myself
sharing some of my 'ideas' - heh.
ISSUE 1: Those "Something Wicked" messages
Present in original and patch too.
> if ((intr_status & ~( IntrLinkChange | IntrStatsMax
|
> IntrTxAborted ))) {
Richard,
Isn't this bitwise AND with a complement...
Meaning negation?
The way I understood it:
If this is an interrupt that is NOT IntrLinkChange,
IntrStatsMax or IntrTxAborted, we don't know what's
going on but it can't be good so print error message
and reset the chip.....a block designed to trap
all other problems at the end of the error function.
I still don't see the point behind this.
The function via_rhine_error is called only once like
this:
if (intr_status & (IntrPCIErr | IntrLinkChange |
IntrMIIChange | IntrStatsMax | IntrTxAbort |
IntrTxUnderrun))
via_rhine_error(dev, intr_status);
so if none of those interrupts are present,
the error function won't even be called.
So why check for anything else?
Inside error function:
if (intr_status & (mii | IntrLinkChange)) {
takes care of IntrLinkChange and IntrMIIChange
if (intr_status & IntrStatsMax) {
takes care of IntrStatsMax
if (intr_status & (underflow | IntrTxAbort)) {
takes care of IntrTxUnderflow and IntrTxAbort
if (intr_status & IntrTxUnderrun) {
takes care of IntrTxUnderrun
only IntrPCIErr is missing....that could have
trigged this function call...
so why don't just add:
if (intr_status & IntrPCIErr) {
-do error message
-reset chip
and get rid of the "Wicked" checks...
They prints misleading error messages...
Maybe I'm missing something.
ISSUE 2: Repetitive negotiation of full duplex
Created by the Urban patch.
Andy,
Um...
I did some printouts and ended up with duplex being
256....probably because of: duplex = mii_reg & 0x100;
Also: np->mii_if.full_duplex = duplex; refused
to set full_duplex to 256 (?)
I am not sure but I believe, based on other code,
that duplex is supposed to be 0 or 1.
changed to
duplex = (mii_reg & 0x100)? 1:0;
and it's working fine now - negotiates only once.
full_duplex actually changes...
ISSUE 3: Well, my card is still stalling.
But I should probably leave this to somebody
who actually has a clue about those things.
The log looks a lot cleaner now, though:
.....
Mar 21 19:04:10 cobra kernel: eth0: Transmitter
underflow?, status 001a.
Mar 21 19:04:10 cobra kernel: eth0: Transmitter
underrun, increasing Tx threshold setting to 40.
Mar 21 19:04:15 cobra kernel: eth0: Transmitter
underflow?, status 0008.
Mar 21 19:04:15 cobra kernel: eth0: Transmitter
underflow?, status 0008.
Mar 21 19:04:19 cobra kernel: NETDEV WATCHDOG: eth0:
transmit timed out
Mar 21 19:04:19 cobra kernel: eth0: Transmit timed
out, status 0000, PHY status 782d, resetting...
Mar 21 19:04:19 cobra kernel: eth0: reset finished
after 5 microseconds.
Mar 21 19:04:24 cobra kernel: eth0: Transmitter
underflow?, status 001a.
Mar 21 19:04:24 cobra kernel: eth0: Transmitter
underrun, increasing Tx threshold setting to 40.
Mar 21 19:04:24 cobra kernel: eth0: Transmitter
underflow?, status 000a.
Mar 21 19:04:29 cobra kernel: NETDEV WATCHDOG: eth0:
transmit timed out
Mar 21 19:04:29 cobra kernel: eth0: Transmit timed
out, status 0000, PHY status 782d, resetting...
Mar 21 19:04:29 cobra kernel: eth0: reset finished
after 5 microseconds.
Mar 21 19:04:36 cobra kernel: eth0: Transmitter
underflow?, status 0008.
Mar 21 19:04:36 cobra last message repeated 2 times
Mar 21 19:04:39 cobra kernel: NETDEV WATCHDOG: eth0:
transmit timed out
Mar 21 19:04:39 cobra kernel: eth0: Transmit timed
out, status 0000, PHY status 782d, resetting...
Mar 21 19:04:39 cobra kernel: eth0: reset finished
after 5 microseconds.
...........
So?
Is any of the above correct?
Or am I really close to frying my ethernet controller?
:)
Either way, changing stuff in the kernel's been fun.
I'll investigate some more.
Also: an off-topic question...
How do I reply to a particular message..
So that my messages appear in thread format
with more than 1 level...
In-Reply To rather than Maybe In Reply-To
This thread is starting to grow and I'd like to know.
__________________________________________________
Do You Yahoo!?
Yahoo! Movies - coverage of the 74th Academy Awards®
http://movies.yahoo.com/
next reply other threads:[~2002-03-22 2:33 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-22 2:33 Ivan Gurdiev [this message]
-- strict thread matches above, loose matches on Subject: below --
2002-04-07 6:43 Ivan G.
2002-04-10 16:51 ` Urban Widmark
2002-04-10 22:46 ` Ivan G.
2002-04-05 5:47 Ivan G.
2002-03-28 8:50 Ivan Gurdiev
2002-04-04 22:10 ` Urban Widmark
2002-03-26 1:52 Ivan Gurdiev
2002-03-26 21:19 ` Urban Widmark
2002-03-21 20:49 Ivan Gurdiev
2002-03-21 21:56 ` Richard B. Johnson
2002-03-21 5:20 Ivan Gurdiev
2002-03-24 12:40 ` Urban Widmark
2002-03-20 7:27 Ivan Gurdiev
2002-03-20 15:34 ` Andy Carlson
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=20020322023313.99572.qmail@web10108.mail.yahoo.com \
--to=ivangurdiev@yahoo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=naclos@andyc.dyndns.org \
--cc=root@chaos.analogic.com \
/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
all inboxes | Powered by JetHome®