Current-Users archive

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

Strange USB crash



After having had my previous motherboard go belly-up, I've replaced it with a new one. The entire dmesg is attached, but here's the relevant messages for the ohci devices:

ohci0 at pci0 dev 18 function 0: vendor 0x1002 product 0x4397 (rev. 0x00)
ohci0: interrupting at ioapic0 pin 16
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
ohci1 at pci0 dev 18 function 1: vendor 0x1002 product 0x4398 (rev. 0x00)
ohci1: interrupting at ioapic0 pin 16
ohci1: OHCI version 1.0, legacy support
usb1 at ohci1: USB revision 1.0
ehci0 at pci0 dev 18 function 2: vendor 0x1002 product 0x4396 (rev. 0x00)
ehci0: interrupting at ioapic0 pin 17
ehci0: dropped intr workaround enabled
ehci0: EHCI version 1.0
ehci0: companion controllers, 3 ports each: ohci0 ohci1
usb2 at ehci0: USB revision 2.0
ohci2 at pci0 dev 19 function 0: vendor 0x1002 product 0x4397 (rev. 0x00)
ohci2: interrupting at ioapic0 pin 18
ohci2: OHCI version 1.0, legacy support

I've had multiple crashes for no apparent reason, under varying I/O loads (including nothing but CPU-bound code-cracker), and the backtrace is always the same:

        panic + 0x2ba
        ohci_softintr + 0x466
        softint_dispatch + 0xcc

gdb says that the address ohci_softintr+0x466 is in dev/usb/ohci.c at

                                if (sitd->flags & OHCI_CALL_DONE)
                                        break;
                                ohci_free_sitd(sc, sitd);
                        }
    >>>>                ohci_free_sitd(sc, sitd);
                        if (uedir == UE_DIR_IN &&
                            xfer->status == USBD_NORMAL_COMPLETION)
                                xfer->actlen = actlen;
                        xfer->hcpriv = NULL;

And ohci_free_sitd() is defined in the same file as

        void
        ohci_free_sitd(ohci_softc_t *sc, ohci_soft_itd_t *sitd)
        {
                int s;

                DPRINTFN(10,("ohci_free_sitd: sitd=%p\n", sitd));

        #ifdef DIAGNOSTIC
                if (!sitd->isdone) {
                        panic("ohci_free_sitd: sitd=%p not done", sitd);
                        return;
                }
                /* Warn double free */
                sitd->isdone = 0;
        #endif
        ...


Yes, my kernel does have 'options DIAGNOSTIC' turned on (I don't remember why, it's just been on forever!) so hitting that panic is certainly possible.

My questions to the usb experts:

1) should I just rebuild without DIAGNOSTIC and ignore the error?

2) Is "something bad(tm)" going to happen later if it does double-free?

3) Is this indicative of some other underlying problem?

   And if so, how would I go about finding and fixing it?

For now, I'm going to remove DIAGNOSTIC, since I really need my nfs server to be relatively stable. :)


-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 5.99.29 (SPEEDY (BioStar TA785GE 128M) 2010-06-04 21:20:20) #0: Fri Jun  
4 14:25:28 PDT 2010
        
paul%speedy.whooppee.com@localhost:/build-out/netbsd-local/obj/amd64/sys/arch/amd64/compile/SPEEDY
total memory = 1791 MB
avail memory = 1728 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100
BIOSTAR Group TA785GE 128M ( )
mainbus0 (root)
ACPI Warning: Optional field Pm2ControlBlock has zero address or length: 
0000000000000000/1 (20100121/tbfadt-655)
cpu0 at mainbus0 apid 0: AMD 686-class, 3000MHz, id 0x100f42
cpu1 at mainbus0 apid 1: AMD 686-class, 3000MHz, id 0x100f42
cpu2 at mainbus0 apid 2: AMD 686-class, 3000MHz, id 0x100f42
cpu3 at mainbus0 apid 3: AMD 686-class, 3000MHz, id 0x100f42
ioapic0 at mainbus0 apid 4: pa 0xfec00000, version 21, 24 pins
acpi0 at mainbus0: Intel ACPICA 20100121
acpi0: X/RSDT: OemId <011210,XSDT2124,20100112>, AslId <MSFT,00000097>
acpi0: SCI interrupting at int 9
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
ACPI-Fast 32-bit timer
attimer0 at acpi0 (TMR, PNP0100): io 0x40-0x43 irq 0
pcppi0 at acpi0 (SPKR, PNP0800): io 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
hpet0 at acpi0 (HPET, PNP0103): mem 0xfed00000-0xfed003ff
timecounter: Timecounter "hpet0" frequency 14318180 Hz quality 2000
com0 at acpi0 (UAR1, PNP0501-1): io 0x3f8-0x3ff irq 4
com0: ns16550a, working fifo
acpibut0 at acpi0 (PWRB, PNP0C0C-170): ACPI Power Button
acpitz0 at acpi0 (THRM): ACPI Thermal Zone
acpitz0: critical 127.0 C, passive cooling
acpiwmi0 at acpi0 (AOD, PNP0C14-0): ACPI WMI Interface
acpiwmibus at acpiwmi0 not configured
attimer0: attached to pcppi0
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0: vendor 0x1022 product 0x9601 (rev. 0x00)
ppb0 at pci0 dev 1 function 0: vendor 0x1022 product 0x9602 (rev. 0x00)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga0 at pci1 dev 5 function 0: vendor 0x1002 product 0x9710 (rev. 0x00)
wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
drm at vga0 not configured
hdaudio1 at pci1 dev 5 function 1: HD Audio Controller
hdaudio1: interrupting at ioapic0 pin 19
hdafg1 at hdaudio1 vendor 0x1002 product 0x791A nid 0x01 (firmware 
configuration)
hdafg1: DAC0:02, Digital Digital Other Out: Jack (Unknown, 03)
hdafg1: 2ch/0ch 48000Hz 16/16
audio1 at hdafg1: half duplex, playback
ppb1 at pci0 dev 7 function 0: vendor 0x1022 product 0x9607 (rev. 0x00)
ppb1: unsupported PCI Express version
pci2 at ppb1 bus 2
pci2: i/o space, memory space enabled, rd/line, wr/inv ok
re0 at pci2 dev 0 function 0: RealTek 8168/8111 PCIe Gigabit Ethernet (rev. 
0x03)
re0: interrupting at ioapic0 pin 19
re0: Ethernet address 00:30:67:60:71:ab
re0: using 256 tx descriptors
rgephy0 at re0 phy 7: RTL8169S/8110S/8211 1000BASE-T media interface, rev. 2
rgephy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
1000baseT-FDX, auto
ixpide0 at pci0 dev 17 function 0: ATI Technologies IXP IDE Controller (rev. 
0x00)
ixpide0: bus-master DMA support present
ixpide0: primary channel configured to native-PCI mode
ixpide0: using ioapic0 pin 22 for native-PCI interrupt
atabus0 at ixpide0 channel 0
ixpide0: secondary channel configured to native-PCI mode
atabus1 at ixpide0 channel 1
ohci0 at pci0 dev 18 function 0: vendor 0x1002 product 0x4397 (rev. 0x00)
ohci0: interrupting at ioapic0 pin 16
ohci0: OHCI version 1.0, legacy support
usb0 at ohci0: USB revision 1.0
ohci1 at pci0 dev 18 function 1: vendor 0x1002 product 0x4398 (rev. 0x00)
ohci1: interrupting at ioapic0 pin 16
ohci1: OHCI version 1.0, legacy support
usb1 at ohci1: USB revision 1.0
ehci0 at pci0 dev 18 function 2: vendor 0x1002 product 0x4396 (rev. 0x00)
ehci0: interrupting at ioapic0 pin 17
ehci0: dropped intr workaround enabled
ehci0: EHCI version 1.0
ehci0: companion controllers, 3 ports each: ohci0 ohci1
usb2 at ehci0: USB revision 2.0
ohci2 at pci0 dev 19 function 0: vendor 0x1002 product 0x4397 (rev. 0x00)
ohci2: interrupting at ioapic0 pin 18
ohci2: OHCI version 1.0, legacy support
usb3 at ohci2: USB revision 1.0
ohci3 at pci0 dev 19 function 1: vendor 0x1002 product 0x4398 (rev. 0x00)
ohci3: interrupting at ioapic0 pin 18
ohci3: OHCI version 1.0, legacy support
usb4 at ohci3: USB revision 1.0
ehci1 at pci0 dev 19 function 2: vendor 0x1002 product 0x4396 (rev. 0x00)
ehci1: interrupting at ioapic0 pin 19
ehci1: dropped intr workaround enabled
ehci1: EHCI version 1.0
ehci1: companion controllers, 3 ports each: ohci2 ohci3
usb5 at ehci1: USB revision 2.0
piixpm0 at pci0 dev 20 function 0
piixpm0: vendor 0x1002 product 0x4385 (rev. 0x3c)
piixpm0: interrupting at SMI, polling
iic0 at piixpm0: I2C bus
iic0: devices at 0x38 0x53 0x66 0x69
spdmem3 at iic0 addr 0x53
spdmem3: DDR2 SDRAM, no parity or ECC, 2GB, 800MHz (PC2-6400)
spdmem3: 14 rows, 10 cols, 2 ranks, 8 banks/chip, 2.50ns cycle time
spdmem3: tAA-tRCD-tRP-tRAS: 5-5-5-18
spdmem3: voltage SSTL 1.8V, refresh time 7.8us (self-refreshing)
dbcool_chip_ident: addr 0x2e c_id 0x00 d_id 0x00 r_id 0x00: No match.
ixpide1 at pci0 dev 20 function 1: ATI Technologies IXP IDE Controller (rev. 
0x00)
ixpide1: bus-master DMA support present
ixpide1: primary channel configured to compatibility mode
ixpide1: primary channel interrupting at ioapic0 pin 14
atabus2 at ixpide1 channel 0
ixpide1: secondary channel configured to compatibility mode
ixpide1: secondary channel interrupting at ioapic0 pin 15
atabus3 at ixpide1 channel 1
hdaudio0 at pci0 dev 20 function 2: HD Audio Controller
hdaudio0: interrupting at ioapic0 pin 16
hdafg0 at hdaudio0 vendor 0x10EC product 0x0662 nid 0x01 (firmware 
configuration)
hdafg0: DAC0:02, Analog Speaker: Jack (Green, 14)
hdafg0: DAC0:02, Analog HP Out: Jack (Green, 1B)
hdafg0: DAC1:06, Digital SPDIF Out: Jack (Black, 1E)
hdafg0: ADC2:08, Analog Mic In: Jack (Pink, 18)
hdafg0: ADC2:08, Analog Mic In: Jack (Pink, 19)
hdafg0: ADC2:08, Analog Line In: Jack (Blue, 1A)
hdafg0: 2ch/2ch 44100Hz-96000Hz 16/16 20/32 24/32
audio0 at hdafg0: full duplex, playback, capture, independent
pcib0 at pci0 dev 20 function 3: vendor 0x1002 product 0x439d (rev. 0x00)
ppb2 at pci0 dev 20 function 4: vendor 0x1002 product 0x4384 (rev. 0x00)
pci3 at ppb2 bus 3
pci3: i/o space enabled
ohci4 at pci0 dev 20 function 5: vendor 0x1002 product 0x4399 (rev. 0x00)
ohci4: interrupting at ioapic0 pin 18
ohci4: OHCI version 1.0, legacy support
usb6 at ohci4: USB revision 1.0
pchb1 at pci0 dev 24 function 0: vendor 0x1022 product 0x1200 (rev. 0x00)
pchb2 at pci0 dev 24 function 1: vendor 0x1022 product 0x1201 (rev. 0x00)
pchb3 at pci0 dev 24 function 2: vendor 0x1022 product 0x1202 (rev. 0x00)
amdtemp0 at pci0 dev 24 function 3: AMD CPU Temperature Sensors (Family10h / 
Family11h)
pchb4 at pci0 dev 24 function 4: vendor 0x1022 product 0x1204 (rev. 0x00)
isa0 at pcib0
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
itesio0 at isa0 port 0x2e-0x2f: iTE IT8718F Super I/O (rev 5)
itesio0: Hardware Monitor registers at 0xa10
itesio0: Watchdog Timer present
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
timecounter: Timecounter "TSC" frequency 3000290740 Hz quality 3000
uhub0 at usb0: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
uhub1 at usb1: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
uhub2 at usb2: vendor 0x1002 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub2: 6 ports with 6 removable, self powered
uhub3 at usb3: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub3: 3 ports with 3 removable, self powered
uhub4 at usb4: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub4: 3 ports with 3 removable, self powered
uhub5 at usb5: vendor 0x1002 EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub5: 6 ports with 6 removable, self powered
uhub6 at usb6: vendor 0x1002 OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub6: 2 ports with 2 removable, self powered
ehci0: handing over low speed device on port 2 to ohci0
uhidev0 at uhub0 port 2 configuration 1 interface 0
uhidev0: Justcom Technology USB KVM Switch, rev 1.10/1.00, addr 2, iclass 3/1
ukbd0 at uhidev0: 8 modifier keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev1 at uhub0 port 2 configuration 1 interface 1
uhidev1: Justcom Technology USB KVM Switch, rev 1.10/1.00, addr 2, iclass 3/1
ums0 at uhidev1: 5 buttons and Z dir
wsmouse0 at ums0 mux 0
wd0 at atabus0 drive 0: <WDC WD5000AAKS-00TMA0>
wd0: drive supports 16-sector PIO transfers, LBA48 addressing
wd0: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd0(ixpide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
wd1 at atabus1 drive 1: <WDC WD3200AAKS-75L9A0>
wd1: drive supports 16-sector PIO transfers, LBA48 addressing
wd1: 298 GB, 620181 cyl, 16 head, 63 sec, 512 bytes/sect x 625142448 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
wd1(ixpide0:1:1): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
/build: replaying log to disk
/build-out: replaying log to disk
/var/crash: replaying log to disk


Home | Main Index | Thread Index | Old Index