[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 3.5 shutdown hangup on p166 (i386)



IAK> To:       bugs@openbsd.org
IAK> Subject:  3.5 shutdown hangup with dc(4) (i386)
IAK> From:     shadow@oganer.net
IAK> Cc:
IAK> Reply-To: shadow@oganer.net
IAK> X-sendbug-version: 3.97

>>>Submitter-Id:  undefined
>>>Originator:    Ilya A. Kovalenko
>>>Organization:  JSC Oganer-Service, Norilsk, Russia

>>>Synopsis:      dc(4) NICs + reported HW cause hang up on shutdown
>>>Severity:      non-critical
>>>Priority:      low

>>>Category:      i386
>>>Class:         sw-bug
>>>Release:       OpenBSD 3.5 tag OPENBSD_3_5 (13.04.2004 pre-stable)
>>>Environment:
IAK>         System      : OpenBSD 3.5
IAK>         Architecture: OpenBSD.i386
             Machine     : Pentium/MMX 166 MB Iwill P55XB2 (i430TX set)

>>>Description:
IAK>             System hangs up on any attempt to reboot(8) or halt(8).
IAK>             Last message is "Syncing disks ... done"
                 hangs on dc(4) driver:

                 boot()
                   |
                 doshutdownhooks()
                   |
                   .... (indirect call)
                   |
                 dc_stop()
                   |
                 m_freem() on "RX list free" loop

                 (I suspect, incorrect or double release)

IAK>             Problem appears only on reported hardware with Davicom
IAK>             NIC(s).
IAK>             Other combinations works w/o problems.
IAK>
IAK>             Problems appear only after dc iface ip address
IAK>             assignation.
IAK>             I.e. no problems if no hostname.if and single
IAK>             user mode.

                 Revisions:
                 dc.c    dcreg.h      date       Comments
                 
                 1.62    1.30       -            Ok        (OPENBSD_3_4)
                 1.63    1.31       25.09.2003   Ok
                 1.64    1.32       29.09.2003   Hangs up
                 1.65    1.33       21.10.2003   Hangs up  (OPENBSD_3_5)
                 1.66    1.33       -            Hangs up  (HEAD)


IAK>           dmesg:

IAK> OpenBSD 3.5 (GENERIC) #0: Tue Apr 13 20:49:15 KRAST 2004
IAK>     root@void.lenkom.lan:/usr/src/sys/arch/i386/compile/GENERIC
IAK> cpu0: Intel Pentium/MMX ("GenuineIntel" 586-class) 167 MHz
IAK> cpu0: FPU,V86,DE,PSE,TSC,MSR,MCE,CX8,MMX
IAK> cpu0: F00F bug workaround installed
IAK> real mem  = 66695168 (65132K)
IAK> avail mem = 55742464 (54436K)
IAK> using 839 buffers containing 3436544 bytes (3356K) of memory
IAK> mainbus0 (root)
IAK> bios0 at mainbus0: AT/286+(29) BIOS, date 11/28/97, BIOS32 rev. 0 @ 0xfb0f0
IAK> apm0 at bios0: Power Management spec V1.2
IAK> apm0: AC on, battery charge unknown
IAK> pcibios0 at bios0: rev. 2.1 @ 0xf0000/0xb568
IAK> pcibios0: PCI IRQ Routing Table rev. 1.0 @ 0xfd900/144 (7 entries)
IAK> pcibios0: PCI Exclusive IRQs: 0
IAK> pcibios0: PCI Interrupt Router at 000:07:0 ("Intel 82371SB ISA" rev 0x00)
IAK> pcibios0: PCI bus #0 is the last bus
IAK> bios0: ROM list: 0xc0000/0x7e00
IAK> pci0 at mainbus0 bus 0: configuration mode 1 (bios)
IAK> pchb0 at pci0 dev 0 function 0 "Intel 82439TX System" rev 0x01
IAK> pcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x01
IAK> pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA, channel 0 wi
IAK> red to compatibility, channel 1 wired to compatibility
IAK> wd0 at pciide0 channel 0 drive 0: <WDC WD136BA>
IAK> wd0: 16-sector PIO, LBA, 13042MB, 26712000 sectors
IAK> wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
IAK> pciide0: channel 1 disabled (no drives)
IAK> uhci0 at pci0 dev 7 function 2 "Intel 82371AB USB" rev 0x01pci_intr_map: no mapp
IAK> ing for pin D
IAK> : couldn't map interrupt
IAK> "Intel 82371AB Power Mgmt" rev 0x01 at pci0 dev 7 function 3 not configured
IAK> dc0 at pci0 dev 9 function 0 "Davicom Technologies
IAK> DM9102" rev 0x31: irq 11, add
IAK> ress 00:08:a1:4c:45:8f
IAK> amphy0 at dc0 phy 1: Am79C873 10/100 media interface, rev. 0
IAK> dc1 at pci0 dev 10 function 0 "Davicom Technologies DM9102" rev 0x31: irq 10, ad
IAK> dress 00:08:a1:4c:82:a5
IAK> amphy1 at dc1 phy 1: Am79C873 10/100 media interface, rev. 0
IAK> vga1 at pci0 dev 11 function 0 unknown vendor 0x1163 product 0x2000 rev 0x06
IAK> wsdisplay0 at vga1: console (80x25, vt100 emulation)
IAK> wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
IAK> isa0 at pcib0
IAK> isadma0 at isa0
IAK> pckbc0 at isa0 port 0x60/5
IAK> pckbd0 at pckbc0 (kbd slot)
IAK> pckbc0: using irq 1 for kbd slot
IAK> wskbd0 at pckbd0: console keyboard, using wsdisplay0
IAK> pcppi0 at isa0 port 0x61
IAK> midi0 at pcppi0: <PC speaker>
IAK> sysbeep0 at pcppi0
IAK> npx0 at isa0 port 0xf0/16: using exception 16
IAK> pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
IAK> pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
IAK> fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
IAK> fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
IAK> biomask 4040 netmask 4c40 ttymask 4c42
IAK> pctr: 586-class performance counters and user-level cycle counter enabled
IAK> dkcsum: wd0 matched BIOS disk 80
IAK> root on wd0a
IAK> rootdev=0x0 rrootdev=0x300 rawdev=0x302

>>>How-To-Repeat:
IAK>            On reported hardware & at least one Davicom NIC do:
IAK>
IAK>             # ifconfig dcN inet 10.0.0.1
IAK>             # halt
IAK>

>>>Fix:
IAK>             Workaround: Replace NICs with another.
                 Q&D Fix: downgrade dc(4) driver:
                    dc.c     1.65 -> 1.63
                    dcreg.g  1.33 -> 1.31
                 (or downgrade to OPENBSD_3_4)

Ilya A. Kovalenko                 (mailto:shadow@oganer.net)
S.A.
JSC Oganer-Service
Norilsk, Russia