Card-Reader Problem continued
Alan Stern
stern at rowland.harvard.edu
Fri May 19 13:06:35 PDT 2006
On Fri, 19 May 2006, Christian Haul wrote:
> Hi all,
>
> looks like I have been prodding the wrong tree here. I've just managed
> to open the machine and try all combinations of card readers and usb
> ports. The "broken" machine showed absolutely the same broken behaviour
> with the external card reader as with the internal reader.
>
> It turned out that the internal card reader was not attached to the
> on-board usb but an usb 2.0 extension card.
>
> Testing against the on-board usb *both* card readers were *fine* and no
> extra load was visible.
> Testing against the usb 2.0 extension card, *both* readers caused a high
> system load.
>
> I did an additional test with two usb memory sticks: a 128MB usb 1.1 and
> a 1GB usb 2.0 stick.
>
> Attached to the on-board usb 1.1, both caused a "hi 2.0%" mark in top.
> Attached to the usb 2.0 card, the usb 1.1 stick caused a "hi 10.0%" mark
> and the usb 2.0 stick caused a "hi 2.0%" mark in top.
>
> So, it really looks like a problem of the ehci driver with usb 1.1
> devices. There are two kernel options I need to experiment with: the
> "Full speed ISO transactions" and "Root Hub Translators", both marked
> "experimental".
Neither of those is likely to affect this issue. Mass Storage devices
don't use ISO transactions, and only a very small number of EHCI
controllers have root-hub translators.
Furthermore, the ehci-hcd driver does not get used when you plug in a
USB-1.1 device. If you check the kernel log (the part where the 128 MB
stick is detected) you'll probably see that it mentions ohci-hcd instead.
None of this answers the question about why all those retries were
present. It might help if you rebuild the kernel with CONFIG_SCSI_LOGGING
turned on. (Probably CONFIG_USB_STORAGE_DEBUG should be off when you do
this.) You'll also have to do something like:
echo 0777777777 >/sys/module/scsi_mod/parameters/scsi_logging_level
You can turn the logging back off with:
echo 0 >/sys/module/scsi_mod/parameters/scsi_logging_level
This should tell us whether the retries are initiated by the kernel as
opposed to the application.
By the way, what is the brand and model of your USB extension card?
People should be told to avoid it.
Alan Stern
More information about the hal
mailing list