eepro100.c v1.09l transmit errors with kernel v. 2.0.36

kellyo@us.ibm.com kellyo@us.ibm.com
Mon Sep 20 15:50:51 1999



Donald,
     We just compiled the new driver (1.09q) for the eepro100 and are getting
the following.  Any ideas on what is happening here.  This happens when we
stress test the driver.

Thanks,
     Kelly O.

Sep 20 14:26:30 SGUS1j kernel: eth1: Transmit timed out: status 0050  0070 at
546265/546277 command 000c0000.
Sep 20 14:26:30 SGUS1j kernel: eth1: Tx ring dump,  Tx queue 546277 / 546265:
Sep 20 14:26:30 SGUS1j kernel: eth1:   0 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   1 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   2 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   3 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   4 400ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:  =5 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   6 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   7 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   8 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   9 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   10 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   11 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   12 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   13 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   14 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   15 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   16 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   17 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   18 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   19 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   20 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   21 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   22 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   23 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   24 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1: * 25 000c0000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   26 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   27 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   28 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   29 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   30 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   31 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:Printing Rx ring (next to receive into 105).
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 0  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 1  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 2  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 3  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 4  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 5  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 6  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 7  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 8  c0000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 9  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 10  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 11  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 12  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 13  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 14  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 15  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 16  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 17  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 18  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 19  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 20  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 21  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 22  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 23  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 24  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 25  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 26  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 27  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 28  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 29  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 30  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 31  00000001.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 0 is 2100.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 1 is 7809.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 2 is 02a8.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 3 is 0154.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 4 is 05e1.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 5 is 0081.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 21 is 0019.

Sep 20 14:26:30 SGUS1j kernel: eth1: Tx ring dump,  Tx queue 546277 / 546265:
Sep 20 14:26:30 SGUS1j kernel: eth1:   0 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   1 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   2 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   3 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   4 400ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:  =5 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   6 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   7 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   8 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   9 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   10 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   11 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   12 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   13 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   14 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   15 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   16 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   17 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   18 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   19 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   20 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   21 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   22 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   23 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   24 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1: * 25 000c0000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   26 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   27 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   28 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   29 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   30 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:   31 000ca000.
Sep 20 14:26:30 SGUS1j kernel: eth1:Printing Rx ring (next to receive into 105).
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 0  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 1  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 2  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 3  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 4  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 5  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 6  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 7  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 8  c0000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 9  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 10  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 11  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 12  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 13  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 14  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 15  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 16  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 17  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 18  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 19  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 20  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 21  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 22  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 23  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 24  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 25  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 26  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 27  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 28  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 29  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 30  00000001.
Sep 20 14:26:30 SGUS1j kernel:   Rx ring entry 31  00000001.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 0 is 2100.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 1 is 780d.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 2 is 02a8.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 3 is 0154.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 4 is 05e1.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 5 is 0081.
Sep 20 14:26:30 SGUS1j kernel:   PHY index 1 register 21 is 0000.


Kelly O'Brien
AT&T Global Network Services - Tampa, Florida
Remote Access Gateway Platform Systems Development
kellyo@us.ibm.com
(813)878-3817 (t/l 427)
===========================================================================
                  "Don't let your knowledge be limited by what you already
know." - me



Donald Becker <becker@cesdis1.gsfc.nasa.gov> on 09/16/99 09:21:55 PM

To:   Kelly O'Brien/Tampa/IBM@IBMUS
cc:   linux-eepro100@cesdis1.gsfc.nasa.gov, Chris Fenton/Tampa/IBM@IBMUS, Thomas
      Fortmann/Schaumburg/IBM@IBMUS, Dan DeVault/Tampa/IBM@IBMUS
Subject:  Re: eepro100.c v1.09l transmit errors with kernel v. 2.0.36




On Thu, 16 Sep 1999 kellyo@us.ibm.com wrote:

> We are having a problem with the eepro100.c driver.  We contacted you back
> in July when we were having a mac address issue with the driver and you were
> able to provide us with a fix.  We are using the IBM PCI Management Adapter
> which is the same as the Intel PCI Management Adapter (82559 chipset).  We are
> on the 2.0.36 version of the kernel.  We tried using a new version 1.09Q, but
> could not get it to compile.  Are there other files that we need for the
2.0.36
> kernel version?  I saw that it was for v2.3 so I wasn't sure if it would also
> work for 2.0.36.  Any info on where I can get a more updated driver?

You'll need the kernel compatibility code in the same directory
  k_compat.h
  pci-netif.h
  pci-netif.c
  Makefile
You must 'insmod pci-netif.o' before 'insmod eepro100.o'.

> Sep 16 17:53:41 SGUS3ICA kernel: eth1:   2 000ca000.
> Sep 16 17:53:41 SGUS3ICA kernel: eth1: * 3 000c0000.
> Sep 16 17:53:41 SGUS3ICA kernel: eth1:   4 000ca000.
> Sep 16 17:53:41 SGUS3ICA kernel: eth1:   5 000ca000.

Yup, this is the problem -- the chip misses marking one of Tx descriptors as
completed.

Donald Becker                        becker@cesdis.gsfc.nasa.gov
USRA-CESDIS, Center of Excellence in Space Data and Information Sciences.
Code 930.5, Goddard Space Flight Center,  Greenbelt, MD.  20771
301-286-0882        http://cesdis.gsfc.nasa.gov/people/becker/whoiam.html