From: Jon Mason <jdmason@gmail.com>
To: Richard Ems <richard.ems@mtg-marinetechnik.de>
Cc: linux-kernel@vger.kernel.org, linux-net@vger.kernel.org
Subject: Re: PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain)
Date: Fri, 17 Dec 2004 14:52:11 -0600 [thread overview]
Message-ID: <8924577504121712527144a5cf@mail.gmail.com> (raw)
In-Reply-To: <8924577504121710054331bb54@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3339 bytes --]
Richard,
Please give the patch below a try (I've also attached it for you
convienance), and send me the dmesg output from the next time you hit
the error.
--- dl2k.c 2004-09-10 10:46:34.000000000 -0500
+++ /tmp/dl2k.c 2004-12-17 14:37:40.644124080 -0600
@@ -565,8 +565,9 @@ rio_tx_timeout (struct net_device *dev)
{
long ioaddr = dev->base_addr;
- printk (KERN_INFO "%s: Tx timed out (%4.4x), is buffer full?\n",
- dev->name, readl (ioaddr + TxStatus));
+ printk (KERN_INFO "%s: Tx timed out (%4.4x) %d %d %x %x\n",
+ dev->name, readl (ioaddr + TxStatus), np->cur_tx, np->cur_rx,
+ readl (ioaddr + DMACtrl), readw(ioaddr + IntEnable));
rio_free_tx(dev, 0);
dev->if_port = 0;
dev->trans_start = jiffies;
@@ -1007,8 +1008,9 @@ rio_error (struct net_device *dev, int i
/* PCI Error, a catastronphic error related to the bus interface
occurs, set GlobalReset and HostReset to reset. */
if (int_status & HostError) {
- printk (KERN_ERR "%s: HostError! IntStatus %4.4x.\n",
- dev->name, int_status);
+ printk (KERN_ERR "%s: HostError! IntStatus %4.4x. %d
%d %x %x\n",
+ dev->name, int_status, np->cur_tx, np->cur_rx,
+ readl (ioaddr + DMACtrl), readw(ioaddr + IntEnable));
writew (GlobalReset | HostReset, ioaddr + ASICCtrl + 2);
mdelay (500);
}
On Fri, 17 Dec 2004 12:05:21 -0600, Jon Mason <jdmason@gmail.com> wrote:
> It seems to me that the driver does not re-enable interrupts or the
> transmit and receive engines after it resets the adapter because of
> the PCI bus error.
>
> So, I would like to provide you with a patch which will log the state
> of these registers after the adapter reset and during the transmit
> timeout events to dmesg. If you do not have the kernel source
> available, I can try and compile the module for you (it will just take
> a bit longer, as I will have to find the SuSE 9.2 source).
>
> Thanks,
> Jon
>
> On Fri, 17 Dec 2004 18:15:13 +0100, Richard Ems
> <richard.ems@mtg-marinetechnik.de> wrote:
> > Jon Mason wrote:
> > > It seems to me the cause of the tx timeouts is the "HostError", which
> > > is a PCI bus error. This most likely caused the adapter to hang and
> > > then the transmits started timing out.
> > >
> > > As far as I can tell, the dl2k driver code is common between 2.4 and
> > > 2.6. So, some other change in the kernel is causing the driver to
> > > behave differently and expose this problem.
> > >
> > > I am not the maintainer, but I can try to assist you. However, it will
> > > require running debug drivers (as I am not able to find any
> > > documentation on this adapter). If you are not willing or able to do
> > > this, then I would suggest going back to the 2.4 kernel.
> >
> > Ok, yes, I'm willing to try your debug drivers. We'll see if I'm also
> > able ;-)
> >
> > What shall I do?
> >
> > Thanks ,Richard
> >
> > --
> > Richard Ems
> >
> > MTG Marinetechnik GmbH
> > Wandsbeker Königstr. 62
> > 22041 Hamburg
> > Telefon: +49 40 65803 312
> > TeleFax: +49 40 65803 392
> > mail: richard.ems@mtg-marinetechnik.de
> >
> >
>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: dl2k.patch --]
[-- Type: text/x-patch; name="dl2k.patch", Size: 1153 bytes --]
--- dl2k.c 2004-09-10 10:46:34.000000000 -0500
+++ /tmp/dl2k.c 2004-12-17 14:37:40.644124080 -0600
@@ -565,8 +565,9 @@ rio_tx_timeout (struct net_device *dev)
{
long ioaddr = dev->base_addr;
- printk (KERN_INFO "%s: Tx timed out (%4.4x), is buffer full?\n",
- dev->name, readl (ioaddr + TxStatus));
+ printk (KERN_INFO "%s: Tx timed out (%4.4x) %d %d %x %x\n",
+ dev->name, readl (ioaddr + TxStatus), np->cur_tx, np->cur_rx,
+ readl (ioaddr + DMACtrl), readw(ioaddr + IntEnable));
rio_free_tx(dev, 0);
dev->if_port = 0;
dev->trans_start = jiffies;
@@ -1007,8 +1008,9 @@ rio_error (struct net_device *dev, int i
/* PCI Error, a catastronphic error related to the bus interface
occurs, set GlobalReset and HostReset to reset. */
if (int_status & HostError) {
- printk (KERN_ERR "%s: HostError! IntStatus %4.4x.\n",
- dev->name, int_status);
+ printk (KERN_ERR "%s: HostError! IntStatus %4.4x. %d %d %x %x\n",
+ dev->name, int_status, np->cur_tx, np->cur_rx,
+ readl (ioaddr + DMACtrl), readw(ioaddr + IntEnable));
writew (GlobalReset | HostReset, ioaddr + ASICCtrl + 2);
mdelay (500);
}
next prev parent reply other threads:[~2004-12-17 20:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200412171100.16601.richard.ems@mtg-marinetechnik.de>
2004-12-17 17:07 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Jon Mason
2004-12-17 17:15 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) Richard Ems
2004-12-17 18:05 ` Jon Mason
2004-12-17 20:52 ` Jon Mason [this message]
2004-12-20 9:42 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) (Plain) Richard Ems
2004-12-20 14:34 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Richard Ems
2004-12-20 17:12 ` Jon Mason
2004-12-20 18:03 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) Richard Ems
2004-12-20 20:31 ` Jon Mason
2004-12-21 9:51 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Richard Ems
2004-12-21 16:02 ` Jon Mason
2004-12-22 9:29 ` Richard Ems
2004-12-22 14:54 ` Jon Mason
2004-12-22 15:58 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" (Plain) Richard Ems
2004-12-29 17:53 ` PROBLEM: Network hang: "eth0: Tx timed out (f0080), is buffer full?" Richard Ems
2005-01-04 21:32 ` Jon Mason
2005-01-04 22:09 ` Francois Romieu
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=8924577504121712527144a5cf@mail.gmail.com \
--to=jdmason@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net@vger.kernel.org \
--cc=richard.ems@mtg-marinetechnik.de \
/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.