>Number:         6616
>Category:       kernel
>Synopsis:       vr(4) interface hangup/kernel panic problem
>Confidential:   yes
>Severity:       serious
>Priority:       medium
>Responsible:    bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   unknown
>Arrival-Date:   Sat May 28 12:00:01 GMT 2011
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        
>Organization:
>Environment:
        System      : OpenBSD 4.8
        Details     : OpenBSD 4.8-stable (GENERIC) #1: Fri Feb 18 03:21:59 JST 
2011
                         
darks...@grail.yomi.darkbsd.org:/usr/src/sys/arch/i386/compile/GENERIC

        Architecture: OpenBSD.i386
        Machine     : i386
>Description:
        There seems to be a problem with the vr driver ever since the 4.8 
branch.
        This report is after applying : 
http://ftp.openbsd.org/pub/OpenBSD/patches/4.8/common/003_vr.patch,
        using the CVS stable branch.
        This manifests itself in two ways :
         - Randomly, the interface will hang up and have to be down/upped to be 
operational again.
         - I had a kernel panic happen with the following backtrace :

           uvm_fault(0xd0a05960, 0x3000, 0, 3) -> e
           kernel: page fault trap, code=0
           Stopped at      pool_do_get+0x111:      movl    %ecx,0(%eax)

           ddb> trace
           pool_do_get(d0a0d320,0,d57a2008,d5750a00,0) at pool_do_get+0x111
           pool_get(d0a0d320,0,e,d5754f00,1) at pool_get+0x54
           m_clget(0,1,d150e034,800,1c) at m_clget+0x6c
           vr_alloc_mbuf(d150e000,d150e604,60,d150e58c,4e) at vr_alloc_mbuf+0x41
           vr_fill_rx_ring(d150e000,0,d5754f00,0,d59bb800) at 
vr_fill_rx_ring+0x51
           vr_rxeof(d150e000,e100,c,1,e) at vr_rxeof+0x18e
           vr_intr(d150e000) at vr_intr+0xfd
           Xrecurse_legacy11() at Xrecurse_legacy11+0xb7
           --- interrupt ---
           pf_tag_packet(d9786cf4,d9786cf0,2,d15e8600,d5783400) at 
pf_tag_packet+0x1
           pf_test(2,d15e4000,d9786e20,0,d0a0d240) at pf_test+0x11ab
           ip_output(d5783400,0,d0a12b80,1,0) at ip_output+0x5f0
           ip_forward(d5783400,0,0,0,0) at ip_forward+0x181
           ipv4_input(d5783400,0,d9786f18,d0202089,d03e0058) at ipv4_input+0x655
           ipintr(d03e0058,d0ac0010,d0890010,d9780010,d0ac1ad4) at ipintr+0x49
           Bad frame pointer: 0xd9786f18
           ddb> 
>How-To-Repeat:
        No certain way of reproducing. Sending huge amounts of traffic through 
the interface
        at full speed seems to make the above interface hang problem occur more 
frequently.
>Fix:
        The following are NOT fixes but very dirty workarounds while holding 
out for 4.9.

        Inteface hangup was dealt with temporarily with the following crontab 
entry :
        */5 * * * * /sbin/ifconfig vr0 down; sleep 0.5; /sbin/ifconfig vr0 up

        Permanent crash was worked around using watchdog(4)/watchdogd(8).


dmesg:
OpenBSD 4.8-stable (GENERIC) #1: Fri Feb 18 03:21:59 JST 2011
    darks...@grail.yomi.darkbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Geode(TM) Integrated Processor by AMD PCS ("AuthenticAMD" 586-class) 500 
MHz
cpu0: FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CFLUSH,MMX
real mem  = 536440832 (511MB)
avail mem = 517705728 (493MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 20/70/03, BIOS32 rev. 0 @ 0xfac40
pcibios0 at bios0: rev 2.0 @ 0xf0000/0x10000
pcibios0: pcibios_get_intr_routing - function not supported
pcibios0: PCI IRQ Routing information unavailable.
pcibios0: PCI bus #0 is the last bus
bios0: ROM list: 0xc8000/0xa800
cpu0 at mainbus0: (uniprocessor)
amdmsr0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
io address conflict 0x6100/0x100
io address conflict 0x6200/0x200
pchb0 at pci0 dev 1 function 0 "AMD Geode LX" rev 0x31
glxsb0 at pci0 dev 1 function 2 "AMD Geode LX Crypto" rev 0x00: RNG AES
vr0 at pci0 dev 6 function 0 "VIA VT6105M RhineIII" rev 0x96: irq 11, address 
00:00:24:ca:b0:90
ukphy0 at vr0 phy 1: Generic IEEE 802.3u media interface, rev. 3: OUI 0x004063, 
model 0x0034
vr1 at pci0 dev 7 function 0 "VIA VT6105M RhineIII" rev 0x96: irq 5, address 
00:00:24:ca:b0:91
ukphy1 at vr1 phy 1: Generic IEEE 802.3u media interface, rev. 3: OUI 0x004063, 
model 0x0034
vr2 at pci0 dev 8 function 0 "VIA VT6105M RhineIII" rev 0x96: irq 9, address 
00:00:24:ca:b0:92
ukphy2 at vr2 phy 1: Generic IEEE 802.3u media interface, rev. 3: OUI 0x004063, 
model 0x0034
vr3 at pci0 dev 9 function 0 "VIA VT6105M RhineIII" rev 0x96: irq 12, address 
00:00:24:ca:b0:93
ukphy3 at vr3 phy 1: Generic IEEE 802.3u media interface, rev. 3: OUI 0x004063, 
model 0x0034
hifn0 at pci0 dev 14 function 0 "Hifn 7955/7954" rev 0x00: LZS 3DES ARC4 MD5 
SHA1 RNG AES PK, 32KB dram, irq 10
ath0 at pci0 dev 17 function 0 "Atheros AR5212" rev 0x01: irq 15
ath0: AR5213A 5.9 phy 4.3 rf5112a 3.6, FCC2A*, address 00:0b:6b:d9:c3:c6
glxpcib0 at pci0 dev 20 function 0 "AMD CS5536 ISA" rev 0x03: rev 3, 32-bit 
3579545Hz timer, watchdog, gpio
gpio0 at glxpcib0: 32 pins
pciide0 at pci0 dev 20 function 2 "AMD CS5536 IDE" rev 0x01: DMA, channel 0 
wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: <SanDisk SDCFH2-002G>
wd0: 4-sector PIO, LBA, 1953MB, 4001760 sectors
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
pciide0: channel 1 ignored (disabled)
"AMD CS5536 USB" rev 0x02 at pci0 dev 21 function 0 not configured
ehci0 at pci0 dev 21 function 1 "AMD CS5536 USB" rev 0x02: irq 7
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "AMD EHCI root hub" rev 2.00/1.00 addr 1
isa0 at glxpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
nsclpcsio0 at isa0 port 0x2e/2: NSC PC87366 rev 9: GPIO VLM TMS
gpio1 at nsclpcsio0: 29 pins
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
biomask 61c5 netmask ffe5 ttymask ffff
mtrr: K6-family MTRR support (2 registers)
softraid0 at root
root on wd0a swap on wd0b dump on wd0b

usbdevs:
Controller /dev/usb0:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), AMD(0x1022), 
rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 powered

>Release-Note:
>Audit-Trail:
>Unformatted:

Reply via email to