Hello,

I have a Teac DV-28E-N cdrom, and I've been seeing some buffer
I/O errors on a heavily loaded system (uptime indicates system
load of 390 or so).

Turning on USB debugging for usbcore and mass storage indicates
that something is timing out (hanging?), which makes the SCSI
mid-layer issue an abort, and then a bus reset.

This problem occurs on 2.6.16 but seems to go away in 2.6.18.
Upgrading to 2.6.18 isn't an option.

I've been poking through the git logs to try and figure out
what's changed between 2.6.16 and 2.6.18, and found some patches
that looked promising:

  usb-storage-get-rid-of-timer.patch
  http://marc.info/?l=linux-usb-devel&m=115092809714473&w=2

  usb-core-get-rid-of-timer.patch
  http://marc.info/?l=linux-usb-devel&m=115938791628537&w=2

But applying those didn't seem to help.

If someone could point me in the right direction, either with an
explanation of why my device is timing out, further
instrumentation I could add to my kernel to figure out what's
going on, or a patch that magically solves this problem ;), I'd
really appreciate it. 

Log file excerpts below. Thanks.

/ac

Some relevant lines from /var/log/messages:

--------------------------------------------------------
  Vendor: TEAC      Model: DV-28E-N          Rev: C.6B
  Type:   CD-ROM                             ANSI SCSI revision: 00
 6:0:0:0: Attached scsi generic sg33 type 5
usb-storage: device scan complete
sr0: scsi3-mmc drive: 24x/24x cd/rw xa/form2 cdda tray
Uniform CD-ROM driver Revision: 3.20
sr 6:0:0:0: Attached scsi CD-ROM sr0

kernel: usb 3-2: reset high speed USB device using ehci_hcd and address 3
kernel: end_request: I/O error, dev sr0, sector 428700
kernel: Buffer I/O error on device sr0, logical block 107175
--------------------------------------------------------

Output from a READ_10 timeout:

--------------------------------------------------------
kernel: [  947.760980] usb-storage: queuecommand called
kernel: [  947.761043] usb-storage: *** thread awakened.
kernel: [  947.761051] usb-storage: Command READ_10 (3500) (10 bytes)
kernel: [  947.761055] usb-storage:  28 00 00 01 b0 61 00 00 3c 00
kernel: [  947.761085] usb-storage: Bulk Command S 0x43425355 T 0xda6 L 122880 
F 128 Trg 0 LUN 0 CL 10
kernel: [  947.761092] usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
kernel: [  947.761251] usb-storage: Status code 0; transferred 31/31
kernel: [  947.761255] usb-storage: -- transfer complete
kernel: [  947.761260] usb-storage: Bulk command transfer result=0
kernel: [  947.761266] usb-storage: usb_stor_bulk_transfer_sglist: xfer 122880 
bytes, 4 entries
kernel: [  977.760572] usb-storage: command_abort called
kernel: [  977.760606] usb-storage: Command READ_10 (3500) (10 bytes)
kernel: [  977.760611] usb-storage:  28 00 00 01 b0 61 00 00 3c 00
kernel: [  977.760622] usb-storage: usb_stor_stop_transport called
kernel: [  977.760625] usb-storage: -- cancelling sg request
kernel: [  980.748602] usb-storage: Status code -104; transferred 122880/122880
kernel: [  980.748616] usb-storage: -- transfer cancelled
kernel: [  980.748629] usb-storage: Bulk data transfer result 0x4
kernel: [  980.748633] usb-storage: -- command was aborted
--------------------------------------------------------

Output from a GET EVENT/STATUS NOTIFICATION timeout:

--------------------------------------------------------
kernel: [ 2886.937728] usb-storage: queuecommand called
kernel: [ 2886.937733] usb-storage: *** thread awakened.
kernel: [ 2886.937738] usb-storage: Command GET EVENT/STATUS NOTIFICATION 
(11232) (10 bytes)
kernel: [ 2886.937741] usb-storage:  4a 01 00 00 10 00 00 00 08 00
kernel: [ 2886.937750] usb-storage: Bulk Command S 0x43425355 T 0x2bf9 L 8 F 
128 Trg 0 LUN 0 CL 10
kernel: [ 2886.937764] usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
kernel: [ 2886.937838] usb-storage: Status code 0; transferred 31/31
kernel: [ 2886.937841] usb-storage: -- transfer complete
kernel: [ 2886.937844] usb-storage: Bulk command transfer result=0
kernel: [ 2886.937847] usb-storage: usb_stor_bulk_transfer_sglist: xfer 8 
bytes, 1 entries
kernel: [ 2891.936002] usb-storage: command_abort called
kernel: [ 2891.936031] usb-storage: Command GET EVENT/STATUS NOTIFICATION 
(11232) (10 bytes)
kernel: [ 2891.936034] usb-storage:  4a 01 00 00 10 00 00 00 08 00
kernel: [ 2891.936045] usb-storage: usb_stor_stop_transport called
kernel: [ 2891.936049] usb-storage: -- cancelling sg request
kernel: [ 2895.471986] usb-storage: Status code -104; transferred 8/8
kernel: [ 2895.472002] usb-storage: -- transfer cancelled
kernel: [ 2895.472009] usb-storage: Bulk data transfer result 0x4
kernel: [ 2895.472016] usb-storage: -- command was aborted
--------------------------------------------------------

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to