2002-04-21 23:48:53

by Kris Karas

[permalink] [raw]
Subject: 2.4.19pre2++ USB EHCI-HCD -> auto-reboot

Hello Greg, et al,

I need some tips on how to debug (or help others debug) a problem I am seeing
with the EHCI-HCD driver introduced in 2.4.19-pre2.

Problem: When reading roughly 250 or more contiguous sectors from a
usb-storage device, the system auto-reboots. The reboot is hard and
instantaneous enough that it is impossible to capture screen debug output, if
any; even with verbose debug enabled, there are no lines appended to
/var/log/* that survive the ext3 journal replay. (Sorry, no serial-debug
ability here at home; I doubt the data would be flushed out the line anyway.)

Observations: This behavior does not exhibit itself with the UHCI or OHCI
drivers, so it does not appear to be a usb-storage driver problem. The
hardware is evidently OK, as the Windows drivers have no such problem using
the full 480 Mbit speed. Small transfers (of at most a few blocks at a time)
seem to work OK at high speed.

Kris

What I did, comments in #...
$ # Note: using OHCI at the moment...
$ dd if=/dev/sda of=/dev/null bs=512 count=256
256+0 records in
256+0 records out
$ modprobe ehci-hcd
$ # EHCI now; Plug and unplug USB cable to flush buffers...
$ dd if=/dev/sda of=/dev/null bs=512 count=224
224+0 records in
224+0 records out
$ # Plug and unplug the cable again...
$ dd if=/dev/sda of=/dev/null bs=512 count=256
<Instantaneous Reboot>

System:
MB: Soltek SL75DRV2, Athlon XP 1700, KT266A, VT8233,
VIA UHCI USB 1.1, VT82C586B, rev 27
USB: SIIG USB 2.0 + IEEE1394 PCI card
Uses HINT corp HB1-SE33 PCI-PCI bridge (rev17).
NEC OHCI USB 1.1, rev 65,
NEC EHCI USB 2.0, rev 2,
VIA IEEE 1394 OHCI, rev 67.

Config:
CONFIG_IEEE1394=y
CONFIG_IEEE1394_OHCI1394=y
CONFIG_IEEE1394_VIDEO1394=y
CONFIG_IEEE1394_SBP2=y
CONFIG_IEEE1394_RAWIO=y
CONFIG_IEEE1394_VERBOSEDEBUG=y
CONFIG_USB=y
CONFIG_USB_DEBUG=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_UHCI=y
CONFIG_USB_OHCI=y
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_PRINTER=y
CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT=y
CONFIG_USB_HIDDEV=y


2002-04-22 02:43:34

by Greg KH

[permalink] [raw]
Subject: Re: 2.4.19pre2++ USB EHCI-HCD -> auto-reboot

On Sun, Apr 21, 2002 at 07:49:52PM -0400, Kris Karas wrote:
> Hello Greg, et al,
>
> I need some tips on how to debug (or help others debug) a problem I am seeing
> with the EHCI-HCD driver introduced in 2.4.19-pre2.

First thing would be to try 2.4.19-pre7.
But this does look like a VIA controller, and I think David just sent me
a patch to help fix some problems with this device, so you might be
better off trying this patch against 2.4.19-pre7:
http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.4/usb-ehci-2.4.19-pre7.patch

If that patch doesn't help you out, please let me (and the
linux-usb-devel mailing list) know.

thanks,

greg k-h

2002-04-22 02:45:13

by David Brownell

[permalink] [raw]
Subject: Re: 2.4.19pre2++ USB EHCI-HCD -> auto-reboot

> I need some tips on how to debug (or help others debug) a problem
> I am seeing with the EHCI-HCD driver introduced in 2.4.19-pre2.

Hmm ... that "auto-reboot" has to stop before you can get
much of anywhere! I've not seen that kind of failure since
ehci-hcd was first starting to enumerate devices.

I'd hope that running against 2.5.8 (which has a somewhat
more current EHCI driver in any case), with lots of kernel
debugging features (notably slab debugging, which also
poisons the pci_pool memory used by the USB HCDs),
would give you a more friendly failure mode. Basically
the same stuff exists on 2.4.19-pre, but you will need
to tweak the PCIPOOL_DEBUG stuff in drivers/pci/pci.c
to make the extra poisoning happen. KDB can help too.

Once a few more tidbits of info become available, I can
help figure out what's up. (To be honest, it's been quite a
while since anyone has reported anything but success with
ehci-hcd. Some variety is perversely refreshing ... :)

- Dave