Bug 17517

Summary: 100/10baseT card resets under load
Product: Base System Reporter: rapid <rapid>
Component: kernAssignee: Martin Blapp <mbr>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description rapid 2000-03-20 22:50:02 UTC
Under heavy load my macronix based NIC card resets (lights go out on my
hub(actually a 5 port switch))  then come back on a few secons later and
the traffic continues.  This did not happen on the same machine using
FreeBSD 3.3 .   I am using the dc0 driver now for the NIC and under
FreeBSD 3.3 I used the mx0 driver.  I receive errors on the terminal
indicating tx underruns - I'm lucky to get 20kbs throughput

Fix: 

I wish I knew how to switch back to the mx0 driver!
How-To-Repeat: transfer a file over 100k through the NIC
Comment 1 Sheldon Hearn freebsd_committer freebsd_triage 2000-03-22 09:45:51 UTC
State Changed
From-To: open->feedback

You're going to need to provide more feedback if you actually want  
something done.  You should submit as follow-up to your PR, the 
output of the dmesg(8) command and the contents of your kernel 
config file. 


Comment 2 Sheldon Hearn freebsd_committer freebsd_triage 2000-03-22 09:45:51 UTC
Responsible Changed
From-To: freebsd-bugs->wpaul

Bill seems to be the maintainer for this driver, but he's 
_definitely_ going to want more detail from you. 

Comment 3 rapid 2000-03-27 14:11:51 UTC
Output of dmesg:

su-2.03# dmesg
Copyright (c) 1992-2000 The FreeBSD Project.
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California. All rights reserved.
FreeBSD 4.0-20000214-CURRENT #0: Tue Feb 15 01:45:52 GMT 2000
    root@monster.cdrom.com:/usr/src/sys/compile/GENERIC
Timecounter "i8254"  frequency 1193182 Hz
CPU: AMD-K6(tm) 3D processor (400.91-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x58c  Stepping = 12
  Features=0x8021bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX>
  AMD Features=0x80000800<SYSCALL,3DNow!>
real memory  = 134152192 (131008K bytes)
config> di pcic0
config> di sn0
config> di lnc0
config> di le0
config> di ie0
config> di fe0
config> di ed0
config> di cs0
config> di bt0
config> di aic0
config> di aha0
config> di adv0
config> q
avail memory = 126357504 (123396K bytes)
Preloaded elf kernel "kernel" at 0xc0395000.
Preloaded userconfig_script "/boot/kernel.conf" at 0xc039509c.
md0: Malloc disk
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on
pci0
pci1: <PCI bus> on pcib1
isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
ata-pci0: <VIA 82C586 ATA-33 controller> port 0xe000-0xe00f at device 7.1 on
pci0
ata0 at 0x01f0 irq 14 on ata-pci0
pci0: VIA 83C572 USB controller (vendor=0x1106, dev=0x3038) at 7.2 irq 9
chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0
vga-pci0: <Matrox MGA 1024SG/1064SG/1164SG graphics accelerator> mem
0xea000000-0xea7fffff,0xe9000000-0xe9003fff,0xe8000000-0xe87fffff at device
8.0 on pci0
dc0: <Macronix 98715/98715A 10/100BaseTX> port 0xe800-0xe8ff mem
0xed000000-0xed0000ff irq 9 at device 9.0 on pci0
dc0: Ethernet address: 00:80:c6:f9:c4:cc
miibus0: <MII bus> on dc0
dcphy0: <Intel 21143 NWAY media interface> on miibus0
dcphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fe0: not probed (disabled)
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
ata-isa0: already registered as ata0
adv0: not probed (disabled)
bt0: not probed (disabled)
aha0: not probed (disabled)
aic0: not probed (disabled)
atkbdc0: <keyboard controller (i8042)> at port 0x60-0x6f on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
pcic0: not probed (disabled)
pcic1: not probed (disabled)
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
sio2: not probed (disabled)
sio3: not probed (disabled)
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
ppi0: <Parallel I/O> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
plip0: <PLIP network interface> on ppbus0
ed0: not probed (disabled)
ie0: not probed (disabled)
le0: not probed (disabled)
lnc0: not probed (disabled)
cs0: not probed (disabled)
sn0: not probed (disabled)
unknown0: <Audio> at port 0x220-0x22f,0x330-0x331,0x388-0x38b irq 5 drq 1,5
on isa0
unknown1: <Generic ESDI/IDE/ATA controller> at port 0x168-0x16f,0x36e-0x36f
irq 10 on isa0
unknown2: <Reserved> at port 0x100 on isa0
unknown3: <Game> at port 0x200-0x207 on isa0
ad0: 6679MB <Maxtor 87000D8> [14475/15/63] at ata0-master using UDMA33
acd0: CDROM <CD-ROM CDU77E> at ata0-slave using PIO1
Mounting root from ufs:/dev/ad0s1a
su-2.03#

kernal config:



#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.freebsd.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.241 2000/02/04 07:02:53 jkh Exp $

machine         i386
cpu             I386_CPU
cpu             I486_CPU
cpu             I586_CPU
cpu             I686_CPU
ident           GENERIC
maxusers        32

#makeoptions    DEBUG=-g                #Build kernel with gdb(1) debug
symbols

options         MATH_EMULATE            #Support for x87 emulation
options         INET                    #InterNETworking
options         FFS                     #Berkeley Fast Filesystem
options         FFS_ROOT                #FFS usable as root device [keep
this!]
options         MFS                     #Memory Filesystem
options         MD_ROOT                 #MD is a potential root device
options         NFS                     #Network Filesystem
options         NFS_ROOT                #NFS usable as root device, NFS
required
options         MSDOSFS                 #MSDOS Filesystem
options         CD9660                  #ISO 9660 Filesystem
options         CD9660_ROOT             #CD-ROM usable as root, CD9660
required
options         PROCFS                  #Process filesystem
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP
THIS!]
options         SCSI_DELAY=15000        #Delay (in ms) before probing SCSI
options         UCONSOLE                #Allow users to grab the console
options         USERCONFIG              #boot -c editor
options         VISUAL_USERCONFIG       #visual boot -c editor
options         KTRACE                  #ktrace(1) support
options         SYSVSHM                 #SYSV-style shared memory
options         SYSVMSG                 #SYSV-style message queues
options         SYSVSEM                 #SYSV-style semaphores
options         P1003_1B                #Posix P1003_1B real-time extentions
options         _KPOSIX_PRIORITY_SCHEDULING
options         ICMP_BANDLIM            #Rate limit bad replies

# To make an SMP kernel, the next two are needed
#options        SMP                     # Symmetric MultiProcessor Kernel
#options        APIC_IO                 # Symmetric (APIC) I/O
# Optionally these may need tweaked, (defaults shown):
#options        NCPU=2                  # number of CPUs
#options        NBUS=4                  # number of busses
#options        NAPIC=1                 # number of IO APICs
#options        NINTR=24                # number of INTs

device          isa
device          eisa
device          pci

# Floppy drives
device          fdc0    at isa? port IO_FD1 irq 6 drq 2
device          fd0     at fdc0 drive 0
device          fd1     at fdc0 drive 1

# ATA and ATAPI devices
device          ata0    at isa? port IO_WD1 irq 14
device          ata1    at isa? port IO_WD2 irq 15
device          ata
device          atadisk                 # ATA disk drives
device          atapicd                 # ATAPI CDROM drives
device          atapifd                 # ATAPI floppy drives
device          atapist                 # ATAPI tape drives
options         ATA_STATIC_ID           #Static device numbering
#options        ATA_ENABLE_ATAPI_DMA    #Enable DMA on ATAPI devices

# SCSI Controllers
device          ahb             # EISA AHA1742 family
device          ahc             # AHA2940 and onboard AIC7xxx devices
device          amd             # AMD 53C974 (Teckram DC-390(T))
device          dpt             # DPT Smartcache - See LINT for options!
device          isp             # Qlogic family
device          ncr             # NCR/Symbios Logic
device          sym             # NCR/Symbios Logic (newer chipsets)

device          adv0    at isa?
device          adw
device          bt0     at isa?
device          aha0    at isa?
device          aic0    at isa?

# SCSI peripherals
device          scbus           # SCSI bus (required)
device          da              # Direct Access (disks)
device          sa              # Sequential Access (tape etc)
device          cd              # CD
device          pass            # Passthrough device (direct SCSI access)

# RAID controllers
device          amr             # AMI MegaRAID
device          mlx             # Mylex DAC960 family

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc0 at isa? port IO_KBD
device          atkbd0  at atkbdc? irq 1
device          psm0    at atkbdc? irq 12

device          vga0    at isa?

# splash screen/screen saver
pseudo-device   splash

# syscons is the default console driver, resembling an SCO console
device          sc0     at isa?

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device         vt0     at isa?
#options        XSERVER                 # support for X server
#options        FAT_CURSOR              # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT
lines
#options        PCVT_SCANSET=2          # IBM keyboards are non-std

# Floating point support - do not disable.
device          npx0    at nexus? port IO_NPX irq 13

# Power management support (see LINT for more options)
device          apm0    at nexus? disable flags 0x20 # Advanced Power
Management

# PCCARD (PCMCIA) support
device          card
device          pcic0   at isa? irq 10 port 0x3e0 iomem 0xd0000
device          pcic1   at isa? irq 11 port 0x3e2 iomem 0xd4000 disable

# Serial (COM) ports
device          sio0    at isa? port IO_COM1 flags 0x10 irq 4
device          sio1    at isa? port IO_COM2 irq 3
device          sio2    at isa? disable port IO_COM3 irq 5
device          sio3    at isa? disable port IO_COM4 irq 9

# Parallel port
device          ppc0    at isa? irq 7
device          ppbus           # Parallel port bus (required)
device          lpt             # Printer
device          plip            # TCP/IP over parallel
device          ppi             # Parallel port interface device
#device         vpo             # Requires scbus and da


# PCI Ethernet NICs.
device          de              # DEC/Intel DC21x4x (``Tulip'')
device          fxp             # Intel EtherExpress PRO/100B (82557, 82558)
device          tx              # SMC 9432TX (83c170 ``EPIC'')
device          vx              # 3Com 3c590, 3c595 (``Vortex'')
device          wx              # Intel Gigabit Ethernet Card (``Wiseman'')

# PCI Ethernet NICs that use the common MII bus controller code.
device          miibus          # MII bus support
device          dc              # DEC/Intel 21143 and various workalikes
device          rl              # RealTek 8129/8139
device          sf              # Adaptec AIC-6915 (``Starfire'')
device          sis             # Silicon Integrated Systems SiS 900/SiS
7016
device          ste             # Sundance ST201 (D-Link DFE-550TX)
device          tl              # Texas Instruments ThunderLAN
device          vr              # VIA Rhine, Rhine II
device          wb              # Winbond W89C840F
device          xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# ISA Ethernet NICs.
device          ed0     at isa? port 0x280 irq 10 iomem 0xd8000
device          ex
device          ep
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attatement needed
# and resources will always be dynamically assigned by the pccard code.
device          wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those paremeters here.
device          an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device          ie0     at isa? port 0x300 irq 10 iomem 0xd0000
device          fe0     at isa? port 0x300
device          le0     at isa? port 0x300 irq 5 iomem 0xd0000
device          lnc0    at isa? port 0x280 irq 10 drq 0
device          cs0     at isa? port 0x300
device          sn0     at isa? port 0x300 irq 10
# requires PCCARD (PCMCIA) support to be activated
#device         xe0     at isa?

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device   loop            # Network loopback
pseudo-device   ether           # Ethernet support
pseudo-device   sl      1       # Kernel SLIP
pseudo-device   ppp     1       # Kernel PPP
pseudo-device   tun             # Packet tunnel.
pseudo-device   pty             # Pseudo-ttys (telnet etc)
pseudo-device   md              # Memory "disks"

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device   bpf             #Berkeley packet filter

# USB support
#device         uhci            # UHCI PCI->USB interface
#device         ohci            # OHCI PCI->USB interface
#device         usb             # USB Bus (required)
#device         ugen            # Generic
#device         uhid            # "Human Interface Devices"
#device         ukbd            # Keyboard
#device         ulpt            # Printer
#device         umass           # Disks/Mass storage - Requires scbus and da
#device         ums             # Mouse
# USB Ethernet
#device         aue             # ADMtek USB ethernet
#device         cue             # CATC USB ethernet
#device         kue             # Kawasaki LSI USB ethernet

I hope this will help
Roy Ritter
rapid@flashcom.net



----- Original Message -----
From: <sheldonh@FreeBSD.org>
To: <rapid@flashcom.net>; <sheldonh@FreeBSD.org>;
<freebsd-bugs@FreeBSD.org>; <wpaul@FreeBSD.org>
Sent: Wednesday, March 22, 2000 4:48 AM
Subject: Re: misc/17517: 100/10baseT card resets under load


> Synopsis: 100/10baseT card resets under load
>
> State-Changed-From-To: open->feedback
> State-Changed-By: sheldonh
> State-Changed-When: Wed Mar 22 01:45:51 PST 2000
> State-Changed-Why:
> You're going to need to provide more feedback if you actually want
> something done.  You should submit as follow-up to your PR, the
> output of the dmesg(8) command and the contents of your kernel
> config file.
>
>
> Responsible-Changed-From-To: freebsd-bugs->wpaul
> Responsible-Changed-By: sheldonh
> Responsible-Changed-When: Wed Mar 22 01:45:51 PST 2000
> Responsible-Changed-Why:
> Bill seems to be the maintainer for this driver, but he's
> _definitely_ going to want more detail from you.
>
Comment 4 nobu 2000-04-08 06:01:48 UTC
This problem in the sys/pci/if_dc.c, maybe reset makes by rx transit
status. I think just ignore state in this case. And fix it following
patch. But I don't know is this collect.

--- if_dc.c.orig	Sat Mar 11 14:20:56 2000
+++ if_dc.c	Sat Apr  8 12:50:04 2000
@@ -2109,7 +2109,9 @@
 				DC_INC(i, DC_RX_LIST_CNT);
 				continue;
 			} else {
-				dc_init(sc);
+				/* reset if not transit state */
+				if ((rxstat&DC_ISR_RX_STATE)==DC_RXSTATE_STOP)
+					dc_init(sc);
 				return;
 			}
 		}
--
Nobuhiro Yasutomi,  ISAC Inc.
Comment 5 nobu 2000-04-10 03:01:18 UTC
Wow, Sorry I sended typo patch. collect this one.

--- if_dc.c.orig	Sat Mar 11 14:20:56 2000
+++ if_dc.c	Mon Apr 10 10:42:16 2000
@@ -2109,7 +2109,8 @@
 				DC_INC(i, DC_RX_LIST_CNT);
 				continue;
 			} else {
-				dc_init(sc);
+				if ((rxstat&DC_ISR_RX_STATE)==DC_RXSTATE_STOPPED)
+					dc_init(sc);
 				return;
 			}
 		}

---
Nobuhiro Yasutomi,  ISAC Inc.
http://www.isac.co.jp/
Comment 6 Martin Blapp freebsd_committer freebsd_triage 2003-02-08 07:59:40 UTC
Responsible Changed
From-To: wpaul->mbr

Steal this PR from wpaul. Is this still 
a problem ? Does your card still showing 
these issues ? 

You have not provided a "pciconf -lv" for 
your card entry. I need to know exactly what 
type of card you have.
Comment 7 Mark Linimon freebsd_committer freebsd_triage 2005-11-29 03:39:54 UTC
State Changed
From-To: feedback->closed

Feedback timeout (> 2 years).