From: Piotr Kaczuba <pepe@attika.ath.cx>
To: Adam Kropelin <akropel1@rochester.rr.com>
Cc: Jeff Garzik <jgarzik@pobox.com>, linux-kernel@vger.kernel.org
Subject: Re: tulip driver: errors instead TX packets?
Date: Sun, 11 Jan 2004 13:16:03 +0100 [thread overview]
Message-ID: <40013E83.6070108@attika.ath.cx> (raw)
In-Reply-To: <20040110222038.A4817@mail.kroptech.com>
Adam Kropelin wrote:
> On Sat, Jan 10, 2004 at 09:28:45PM +0100, Piotr Kaczuba wrote:
>
>>Jeff Garzik wrote:
>>
>>>Piotr Kaczuba wrote:
>>>
>>>
>>>>I've got a ADMtek Centaur (3cSOHO100B-TX) running with the tulip
>>>>driver on 2.6.1. I wonder if anyone has noticed that ifconfig shows
>>>>the packets sent in the errors field instead of the TX packets field.
>>>>At least, this is what I assume because it shows 0 TX packets and
>>>>11756 errors.
>>>
>>>This is an old error, but since packets show up, nobody bothers with the
>>>incorrect statistics...
>>
>>It seems that the error lies in the following piece of code from
>>drivers/net/tulip/interrupt.c, function tulip_interrupt. I've inserted
>>an additional printk after the "if (status & 0x8000)" and it looks like
>>normal operation of the nic is considered as an major error by the
>>driver because my printk appeared in dmesg output right after bringing
>>the interface up. I assume that the else branch is never executed
>>although I didn't test what happens if an transmit error really happens.
>>I wonder if a fix for this problem consists of just changing the value
>>of the AND mask but I have no idea what the right value would be.
>>
>>
>> if (status & 0x8000) {
>
>
> According to my PNIC docs (don't have true Tulip docs handy), this bit
> is the logical OR of all the Tx error bits, so it appears a true tx
> error has ocurred.
>
>
>> /* There was an major error, log it. */
>>#ifndef final_version
>> if (tulip_debug > 1)
>> printk(KERN_DEBUG "%s: Transmit error, Tx status %8.8x.\n",
>> dev->name, status);
>>#endif
>
>
> Enabling this printk and setting tulip_debug appropriately would tell us
> what tx error you're experiencing.
>
>
>> tp->stats.tx_errors++;
>> if (status & 0x4104) tp->stats.tx_aborted_errors++;
>> if (status & 0x0C00) tp->stats.tx_carrier_errors++;
>> if (status & 0x0200) tp->stats.tx_window_errors++;
>> if (status & 0x0002) tp->stats.tx_fifo_errors++;
>> if ((status & 0x0080) && tp->full_duplex == 0)
>> tp->stats.tx_heartbeat_errors++;
>
>
> And this code bumps error counters based on the specific error that
> ocurred. It all seems perfectly sane to me. The actual problem lies
> elsewhere, I think.
Here is the output of dmesg after setting TULIP_DEBUG to 4 and starting
pppd (eth0 is used by PPPoE). I agree that the code looks okay but
somehow every packet sent is considered to be an error although I don't
experience any problems in everday network traffic.
Linux Tulip driver version 1.1.13 (May 11, 2002)
eth0: ADMtek Comet rev 49 at 0xe1fc5000, 00:04:75:B1:E0:77, IRQ 10.
eth0: tulip_up(), irq==10.
eth0: Done tulip_up(), CSR0 fff98000, CSR5 fc664010 CSR6 ff972113.
eth0: Added filter for 33:33:00:00:00:01 f99baaba bit 31.
eth0: Added filter for 33:33:ff:b1:e0:77 35362b05 bit 44.
eth0: Added filter for 33:33:00:00:00:01 f99baaba bit 31.
eth0: Added filter for 33:33:ff:b1:e0:77 35362b05 bit 44.
eth0: Added filter for 33:33:00:00:00:01 f99baaba bit 31.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Comet link status 0000 partner capability 0000.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: no IPv6 routers present
eth0: Added filter for 33:33:ff:b1:e0:77 35362b05 bit 44.
eth0: Added filter for 33:33:00:00:00:01 f99baaba bit 31.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 2a0b8c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 2a0b8c80.
eth0: Transmit error, Tx status 2a0b8c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 2a0b8c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Comet link status 0000 partner capability 0000.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Comet link status 0000 partner capability 0000.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Comet link status 0000 partner capability 0000.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Comet link status 0000 partner capability 0000.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
eth0: Transmit error, Tx status 1a078c80.
(output truncated)
Piotr Kaczuba
next prev parent reply other threads:[~2004-01-11 12:16 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-10 14:48 tulip driver: errors instead TX packets? Piotr Kaczuba
2004-01-10 17:27 ` Jeff Garzik
2004-01-10 20:28 ` Piotr Kaczuba
2004-01-11 3:20 ` Adam Kropelin
2004-01-11 12:16 ` Piotr Kaczuba [this message]
2004-01-11 17:27 ` Adam Kropelin
2004-01-12 22:10 ` Piotr Kaczuba
2004-01-13 5:09 ` Adam Kropelin
2004-01-14 20:47 ` Piotr Kaczuba
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=40013E83.6070108@attika.ath.cx \
--to=pepe@attika.ath.cx \
--cc=akropel1@rochester.rr.com \
--cc=jgarzik@pobox.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.