Re: 2.5.25 uhci-hcd very bad

Peter Osterlund (petero2@telia.com)
18 Jul 2002 13:18:42 +0200


Greg KH <greg@kroah.com> writes:

> On Thu, Jul 18, 2002 at 08:35:37AM +0200, Pierre ROUSSELET wrote:
> > The driver is made of a kernel module speedtch.o (built outside of the
> > tree) and of userspace modem firmware loader and management daemon
> > speedmgt.
>
> I'd suggest asking the authors of the driver about this.

I also get the "very bad" message when booting 2.5.25 and 2.5.26, even
if no usb devices are connected. From dmesg:

Freeing unused kernel memory: 200k freed
Adding 104824k swap on /dev/hda3. Priority:-1 extents:1
usb.c: registered new driver usbfs
usb.c: registered new driver hub
uhci-hcd.c: USB Universal Host Controller Interface driver v2.0
PCI: Assigned IRQ 10 for device 00:07.2
hcd-pci.c: uhci-hcd @ 00:07.2, Intel Corp. 82371AB PIIX4 USB
hcd-pci.c: irq 10, io base 0000f300
hcd.c: new USB bus registered, assigned bus number 1
uhci-hcd.c: detected 2 ports
hcd.c: 00:07.2 root hub device address 1
usb.c: new device strings: Mfr=3, Product=2, SerialNumber=1
Product: Intel Corp. 82371AB PIIX4 USB
Manufacturer: Linux 2.5.26-packet uhci-hcd
SerialNumber: 00:07.2
hub.c: USB hub found at /
hub.c: 2 ports detected
hub.c: standalone hub
hub.c: ganged power switching
hub.c: global over-current protection
hub.c: Port indicators are not supported
hub.c: power on to power good time: 2ms
hub.c: hub controller current requirement: 0mA
hub.c: port removable status: RR
hub.c: local power source is good
hub.c: no over-current condition exists
hub.c: enabling power on all ports
usb.c: hub driver claimed interface c10ce460
usb.c: kusbd: /sbin/hotplug add 1
uhci-hcd.c: f300: suspend_hc
uhci-hcd.c: f300: wakeup_hc
uhci-hcd.c: f300: suspend_hc
uhci-hcd.c: f300: wakeup_hc
... (usually repeated about 50 times)
uhci-hcd.c: f300: suspend_hc
uhci-hcd.c: f300: host controller halted. very bad
uhci-hcd.c: f300: wakeup_hc

This happens both with preemtible and non-preemtible kernels. I can
still use a Freecom usb cdrw drive though, so maybe this is not a
problem, even though the message indicates that it is.

I also have a performance problem with the uhci-hcd driver. When
writing data to a CDRW in packet writing mode, usb_stor_freecom_reset
is called quite often, see logs below. This happens in both 2.5.25 and
2.5.26. I tested with the usb-uhci-hcd driver in 2.5.25 (edited the
Makefile) just to rule out kernel changes and other usb changes, but
that driver didn't have this problem. I saw one or two freecom reset
messages though, so it's possible that the new driver just makes an
old problem much more frequent.

pengo:/home/petero# tail -f -n 10000 /var/log/debug | egrep 'Command |reset'
...
Jul 18 12:57:04 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:05 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:05 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:05 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:05 pengo kernel: freecom reset called
Jul 18 12:57:05 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:06 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:06 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:06 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:07 pengo kernel: freecom reset called
Jul 18 12:57:07 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:08 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:08 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:08 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:08 pengo kernel: freecom reset called
Jul 18 12:57:08 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:10 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:10 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:10 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:10 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:11 pengo kernel: freecom reset called
Jul 18 12:57:11 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:13 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:13 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:13 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:13 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:15 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:15 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:16 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:16 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:16 pengo kernel: freecom reset called
Jul 18 12:57:16 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:17 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:20 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:20 pengo kernel: freecom reset called
Jul 18 12:57:20 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:20 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:21 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:57:21 pengo kernel: freecom reset called
...

Jul 18 12:18:11 pengo kernel: usb-storage: queuecommand() called
Jul 18 12:18:11 pengo kernel: usb-storage: *** thread sleeping.
Jul 18 12:18:11 pengo kernel: usb-storage: *** thread awakened.
Jul 18 12:18:11 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:18:11 pengo kernel: usb-storage: 2a 00 00 00 1b e0 00 00 20 00 00 00
Jul 18 12:18:11 pengo kernel: usb-storage: Freecom TRANSPORT STARTED
Jul 18 12:18:11 pengo kernel: usb-storage: 00000000: 2a 00 00 00 1b e0 00 00 - 20 00 00 00 - *....... ...
Jul 18 12:18:11 pengo kernel: usb-storage: foo Status result 0 4
Jul 18 12:18:11 pengo kernel: usb-storage: 00000000: 4a 00 00 f8 - J...
Jul 18 12:18:11 pengo kernel: usb-storage: Device indicates that it has 63488 bytes available
Jul 18 12:18:11 pengo kernel: usb-storage: SCSI requested 65536
Jul 18 12:18:11 pengo kernel: usb-storage: Write data Freecom! (c=65536)
Jul 18 12:18:11 pengo kernel: usb-storage: Done issuing write request: 0 64
Jul 18 12:18:11 pengo kernel: usb-storage: Start of write
Jul 18 12:18:11 pengo kernel: usb-storage: transfer_amount: 65536 and total_transferred: 0
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): xfer 4096 bytes
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_bulk_msg() returned 0 xferred 4096/4096
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): transfer complete
Jul 18 12:18:11 pengo kernel: usb-storage: transfer_amount: 65536 and total_transferred: 4096
... [cut]
Jul 18 12:18:11 pengo kernel: usb-storage: transfer_amount: 65536 and total_transferred: 61440
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): xfer 4096 bytes
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_bulk_msg() returned 0 xferred 4096/4096
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): transfer complete
Jul 18 12:18:11 pengo kernel: usb-storage: freecom_writedata done!
Jul 18 12:18:11 pengo kernel: usb-storage: FCM: Waiting for status
Jul 18 12:18:11 pengo kernel: usb-storage: operation failed
Jul 18 12:18:11 pengo kernel: usb-storage: -- transport indicates command failure
Jul 18 12:18:11 pengo kernel: usb-storage: Issuing auto-REQUEST_SENSE
Jul 18 12:18:11 pengo kernel: usb-storage: Freecom TRANSPORT STARTED
Jul 18 12:18:11 pengo kernel: usb-storage: 00000000: 03 00 00 00 12 00 00 00 - 20 00 00 00 - ........ ...
Jul 18 12:18:11 pengo kernel: usb-storage: foo Status result 0 4
Jul 18 12:18:11 pengo kernel: usb-storage: 00000000: 52 03 ff ff - R...
Jul 18 12:18:11 pengo kernel: usb-storage: Device indicates that it has 65535 bytes available
Jul 18 12:18:11 pengo kernel: usb-storage: SCSI requested 18
Jul 18 12:18:11 pengo kernel: usb-storage: Truncating request to match buffer length: 18
Jul 18 12:18:11 pengo kernel: usb-storage: SCSI wants data, drive doesn't have any
Jul 18 12:18:11 pengo kernel: usb-storage: -- auto-sense failure
Jul 18 12:18:11 pengo kernel: freecom reset called
Jul 18 12:18:11 pengo kernel: usb-storage: scsi cmd done, result=0x70000
Jul 18 12:18:11 pengo kernel: usb-storage: queuecommand() called
Jul 18 12:18:11 pengo kernel: usb-storage: *** thread sleeping.
Jul 18 12:18:11 pengo kernel: usb-storage: *** thread awakened.
Jul 18 12:18:11 pengo kernel: usb-storage: Command WRITE_10 (10 bytes)
Jul 18 12:18:11 pengo kernel: usb-storage: 2a 00 00 00 1b e0 00 00 20 00 00 00
Jul 18 12:18:11 pengo kernel: usb-storage: Freecom TRANSPORT STARTED
Jul 18 12:18:11 pengo kernel: usb-storage: 00000000: 2a 00 00 00 1b e0 00 00 - 20 00 00 00 - *....... ...
Jul 18 12:18:11 pengo kernel: usb-storage: foo Status result 0 4
Jul 18 12:18:11 pengo kernel: usb-storage: 00000000: 4a 00 00 f8 - J...
Jul 18 12:18:11 pengo kernel: usb-storage: Device indicates that it has 63488 bytes available
Jul 18 12:18:11 pengo kernel: usb-storage: SCSI requested 65536
Jul 18 12:18:11 pengo kernel: usb-storage: Write data Freecom! (c=65536)
Jul 18 12:18:11 pengo kernel: usb-storage: Done issuing write request: 0 64
Jul 18 12:18:11 pengo kernel: usb-storage: Start of write
Jul 18 12:18:11 pengo kernel: usb-storage: transfer_amount: 65536 and total_transferred: 0
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): xfer 4096 bytes
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_bulk_msg() returned 0 xferred 4096/4096
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): transfer complete
Jul 18 12:18:11 pengo kernel: usb-storage: transfer_amount: 65536 and total_transferred: 4096
... [cut]
Jul 18 12:18:11 pengo kernel: usb-storage: transfer_amount: 65536 and total_transferred: 61440
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): xfer 4096 bytes
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_bulk_msg() returned 0 xferred 4096/4096
Jul 18 12:18:11 pengo kernel: usb-storage: usb_stor_transfer_partial(): transfer complete
Jul 18 12:18:11 pengo kernel: usb-storage: freecom_writedata done!
Jul 18 12:18:11 pengo kernel: usb-storage: FCM: Waiting for status
Jul 18 12:18:12 pengo kernel: usb-storage: Transfer happy
Jul 18 12:18:12 pengo kernel: usb-storage: scsi cmd done, result=0x0
Jul 18 12:18:12 pengo kernel: usb-storage: *** thread sleeping.

-- 
Peter Osterlund - petero2@telia.com
http://w1.894.telia.com/~u89404340
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/