| Summary: | USB controller driver will die after some hours/heavy load. | ||
|---|---|---|---|
| Product: | Base System | Reporter: | sehh <sehh> |
| Component: | kern | Assignee: | freebsd-usb (Nobody) <usb> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 4.4-RELEASE | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
sehh
2001-10-31 12:10:01 UTC
I can duplicate this and on a much more recent version ... uname: FreeBSD pizza.house 4.5-RC FreeBSD 4.5-RC #0: Wed Jan 16 21:22:20 GMT 2002 dave@pizza.house:/usr/src/sys/compile/GENERIC i386 cvsuped: from RELENG_4 on 2002.01.14.00.00.00 dmesg: Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.5-RC #0: Wed Jan 16 21:22:20 GMT 2002 dave@pizza.house:/usr/src/sys/compile/GENERIC Timecounter "i8254" frequency 1193182 Hz CPU: Pentium III/Pentium III Xeon/Celeron (697.88-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x683 Stepping = 3 Features=0x387f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PA T,PSE36,PN,MMX,FXSR,SSE> real memory = 267124736 (260864K bytes) avail memory = 255029248 (249052K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Pentium Pro MTRR support enabled md0: Malloc disk Using $PIR table, 10 entries at 0xc00f3230 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Intel 82810E (i810E GMCH) Host To Hub bridge> on motherboard pci0: <PCI bus> on pcib0 pci0: <Intel 82810E (i810E GMCH) SVGA controller> at 1.0 irq 11 pcib1: <Intel 82801AA (ICH) Hub to PCI bridge> at device 30.0 on pci0 pci1: <PCI bus> on pcib1 fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0xde80-0xdebf mem 0xff700000-0xff7f ffff,0xff8fe000-0xff8fefff irq 9 at device 1.0 on pci1 fxp0: Ethernet address 00:d0:b7:b5:ef:4d inphy0: <i82555 10/100 media interface> on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto pci1: <unknown card> (vendor=0x1274, dev=0x1371) at 7.0 irq 10 isab0: <Intel 82801AA (ICH) PCI to LPC bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel ICH ATA66 controller> port 0xffa0-0xffaf at device 31.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <Intel 82801AA (ICH) USB controller> port 0xef80-0xef9f irq 9 at device 3 1.2 on pci0 usb0: <Intel 82801AA (ICH) USB controller> on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered ugen0: ALCATEL Speed Touch USB , rev 1.10/0.00, addr 2 pci0: <unknown card> (vendor=0x8086, dev=0x2413) at 31.3 irq 0 orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xc8fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> 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 ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ata1-slave: ata_command: timeout waiting for intr ata1-slave: identify failed ad0: 19536MB <ST320423A> [39693/16/63] at ata0-master UDMA66 ad1: 95562MB <Maxtor 4W100H6> [194158/16/63] at ata0-slave UDMA66 acd0: CDROM <CD-224E> at ata1-master using PIO4 from /var/log/messages: Jan 21 19:05:46 pizza /kernel: usb0: host controller process error Jan 21 19:05:46 pizza /kernel: usb0: host controller halted Jan 21 19:06:29 pizza last message repeated 3 times Jan 21 19:08:32 pizza last message repeated 14 times etc... Responsible Changed From-To: freebsd-bugs->n_hibma Over to maintainer. I use the following code to restart the USB after this occurence.
It seems to work OK for me.
Any comments?
*** /usr/src/sys/dev/usb/uhci.c Tue Oct 31 23:23:29 2000
--- usb/uhci.c Wed Jul 10 12:22:54 2002
***************
*** 962,970 ****
USBDEVNAME(sc->sc_bus.bdev));
}
if (status & UHCI_STS_HCH) {
! /* no acknowledge needed */
! printf("%s: host controller halted\n",=20
! USBDEVNAME(sc->sc_bus.bdev));
}
=20
if (ack) /* acknowledge the ints */
--- 962,990 ----
USBDEVNAME(sc->sc_bus.bdev));
}
if (status & UHCI_STS_HCH) {
! int s;
! =20
! /* no acknowledge needed */
! printf("%s: host controller halted\n",=20
! USBDEVNAME(sc->sc_bus.bdev));
! =20
! /* Try to restart */
! printf("DCRH: Restarting USB controller\n");
! s =3D splusb();
! sc->sc_bus.use_polling++; /* Switch to polling in case =
curproc=3DNULL */
! =20
! UWRITE2(sc, UHCI_STS, 0xFFFF); /* ack pending =
interrupts */
! uhci_run(sc, 0); /* stop the controller =
*/
! UWRITE2(sc, UHCI_INTR, 0); /* disable interrupts =
*/
! uhci_busreset(sc);
! UWRITE2(sc, UHCI_INTR, UHCI_INTR_TOCRCIE | =
UHCI_INTR_RIE |
! UHCI_INTR_IOCE | UHCI_INTR_SPIE); /* =
enable interrupts */
! UHCICMD(sc, UHCI_CMD_MAXP); /* Assume 64 byte packets =
at frame end */
! uhci_run(sc, 1); /* and here we go... */
! sc->sc_bus.use_polling--;
! splx(s);
! ack =3D 0;
! printf("DCRH: USB controller restarted\n");
}
=20
if (ack) /* acknowledge the ints */
intY has scanned this email for all known viruses (www.inty.com)
State Changed From-To: open->analyzed This is definitely bug in the USB stack. The author is recommended to try the patch at http://www.josef-k.net/misc/RELENG_4-USB-20031005.patch.gz, or to wait until after 4.9 has been released when this will be committed to -stable. Responsible Changed From-To: n_hibma->joe This is definitely bug in the USB stack. The author is recommended to try the patch at http://www.josef-k.net/misc/RELENG_4-USB-20031005.patch.gz, or to wait until after 4.9 has been released when this will be committed to -stable. This usb driver memory leak is also observed in 5.x kernels. I have submitted a PR for this (kern/66324). Could the drivers in the 5.x branch be updated with the proposed patch? __________________________________ Do you Yahoo!? Win a $20,000 Career Makeover at Yahoo! HotJobs http://hotjobs.sweepstakes.yahoo.com/careermakeover Responsible Changed From-To: joe->freebsd-usb Hand this over to the usb mailling list. I this still a problem for you? http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/31659 I can't confirm if this bug still exists or not, since i've moved to a DSL router/hub instead. State Changed From-To: analyzed->closed I believe this to have been fixed during the stack upgrade. Unable to confirm the continued existance of the bug. |