From nobody@FreeBSD.org  Mon Mar 20 14:47:25 2000
Return-Path: <nobody@FreeBSD.org>
Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21])
	by hub.freebsd.org (Postfix) with ESMTP id 3B37A37BA1E
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 20 Mar 2000 14:47:25 -0800 (PST)
	(envelope-from nobody@FreeBSD.org)
Received: (from nobody@localhost)
	by freefall.freebsd.org (8.9.3/8.9.2) id OAA15974;
	Mon, 20 Mar 2000 14:47:25 -0800 (PST)
	(envelope-from nobody@FreeBSD.org)
Message-Id: <200003202247.OAA15974@freefall.freebsd.org>
Date: Mon, 20 Mar 2000 14:47:25 -0800 (PST)
From: rapid@flashcom.net
Sender: nobody@FreeBSD.org
To: freebsd-gnats-submit@FreeBSD.org
Subject: 100/10baseT card resets under load
X-Send-Pr-Version: www-1.0

>Number:         17517
>Category:       kern
>Synopsis:       100/10baseT card resets under load
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    mbr
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Mar 20 14:50:02 PST 2000
>Closed-Date:    Tue Nov 29 03:41:31 GMT 2005
>Last-Modified:  Tue Nov 29 03:41:31 GMT 2005
>Originator:     Roy Ritter
>Release:        4.0rc2
>Organization:
>Environment:
bash-2.03# uname -a
FreeBSD server.63-248-77-107.usa3.flashcom.net 4.0-20000214-CURRENT FreeBSD 4.0-20000214-CURRENT #0: Tue Feb 15 01:45:52 GMT 2000     root@monster.cdrom.com:/usr/src/sys/compile/GENERIC  i386

>Description:
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
>How-To-Repeat:
transfer a file over 100k through the NIC
>Fix:
I wish I knew how to switch back to the mx0 driver!

>Release-Note:
>Audit-Trail:
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. 

From: "Roy Ritter" <rapid@flashcom.net>
To: sheldonh@FreeBSD.org
Cc:  
Subject: Re: misc/17517: 100/10baseT card resets under load
Date: Mon, 27 Mar 2000 08:11:51 -0500

 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.
 >
 
 
 

From: Nobuhiro Yasutomi <nobu@rd.isac.co.jp>
To: freebsd-gnats-submit@FreeBSD.org, rapid@flashcom.net
Cc: nobu@rd.isac.co.jp
Subject: Re: misc/17517: 100/10baseT card resets under load
Date: Sat, 08 Apr 2000 14:01:48 +0900

 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.
 

From: Nobuhiro Yasutomi <nobu@rd.isac.co.jp>
To: freebsd-gnats-submit@FreeBSD.org, rapid@flashcom.net
Cc:  
Subject: Re: misc/17517: 100/10baseT card resets under load
Date: Mon, 10 Apr 2000 11:01:18 +0900

 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/
 
Responsible-Changed-From-To: wpaul->mbr 
Responsible-Changed-By: mbr 
Responsible-Changed-When: Fri Feb 7 23:59:40 PST 2003 
Responsible-Changed-Why:  
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. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=17517 
State-Changed-From-To: feedback->closed 
State-Changed-By: linimon 
State-Changed-When: Tue Nov 29 03:39:54 GMT 2005 
State-Changed-Why:  
Feedback timeout (> 2 years). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=17517 
>Unformatted:
