Alan Stern wrote:
On Sat, 27 Mar 2004, Rick Jones wrote:


I'm also suffering with this chip, and been lurking on this list for the last week. I don't seem to get any problem writing, only when reading large amounts of data, e.g. a few hundred MB.


I tend to agree that timing is probably the root problem. Whatever, it's perverse.


Reducing max_sectors to 8 should decrease your throughput substantially. It's a good way to test how the interface will behave with less data streaming by.

Just to let you all know I have not dropped this, just been busy for a week or so.
I did some testing last night by inserting a stack of mdelay()'s in the usb-storage driver (to no avail of course) and I did some testing on the bytes crossing the sector boundary.


The bytes after the boundary have to be 0xFF, the first 2 bits on the first byte before the boundary (the 0xc) bits appear to have no effect, the remaining 6 bits have to be 1's. The 2nd byte appears to have to have a minimum number of 1's in it (like about 7) in a certain order, but given I kept oopsing the kernel every time I unplugged the device I gave up testing before I got a definitive answer. But something like this

0x3f 0xfe 0xff 0xff would lock it up, where as 0x1f 0xff 0xff 0xff, or 0x3f 0xff 0xff 0xfe would not. I agree with David that it looks like some kind of bit stuffing issue, I now need to get some form of windows usb snooper and see what it does.

I have also been getting the lockups on insert. The probing done by the usb-storage module on first insert sometimes locks the device up. I have been tracing URB's and find it sits in usb_stor_msg_common() waiting here wait_for_completion(&urb_done);

Tracing the EHCI driver, the packet gets queued, send to the card and no int's are received (But that is really just confirming what we already knew <sigh>)

Regards,
Brad

Mar 27 18:50:07 bklaptop kernel: usb-storage: queuecommand called
Mar 27 18:50:07 bklaptop kernel: usb-storage: *** thread awakened.
Mar 27 18:50:07 bklaptop kernel: usb-storage: Command WRITE_10 (10 bytes)
Mar 27 18:50:07 bklaptop kernel: usb-storage: 2a 00 00 00 00 00 00 00 02 00
Mar 27 18:50:07 bklaptop kernel: usb-storage: Bulk Command S 0x43425355 T 0xd L 1024 F 0 Trg 0 LUN 0 CL 10
Mar 27 18:50:07 bklaptop kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: submit_async 1 urb dd4eba40 ep2out len 31, qtd dd580180 [qh dd4ee100]
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: irq status 0001 INT
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: ehci_urb_done 1 urb dd4eba40 ep2out status 0 len 31/31
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: irq status 0020 IAA
Mar 27 18:50:07 bklaptop kernel: usb-storage: Status code 0; transferred 31/31
Mar 27 18:50:07 bklaptop kernel: usb-storage: -- transfer complete
Mar 27 18:50:07 bklaptop kernel: usb-storage: Bulk command transfer result=0
Mar 27 18:50:07 bklaptop kernel: usb-storage: usb_stor_bulk_transfer_sglist: xfer 1024 bytes, 1 entries
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: submit_async 1 urb dd4eb620 ep2out len 1024, qtd dd580060 [qh dd4ee100]
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: irq status 0001 INT
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: ehci_urb_done 1 urb dd4eb620 ep2out status 0 len 1024/1024
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: irq status 0020 IAA
Mar 27 18:50:07 bklaptop kernel: usb-storage: Status code 0; transferred 1024/1024
Mar 27 18:50:07 bklaptop kernel: usb-storage: -- transfer complete
Mar 27 18:50:07 bklaptop kernel: usb-storage: Bulk data transfer result 0x0
Mar 27 18:50:07 bklaptop kernel: usb-storage: Attempting to get CSW...
Mar 27 18:50:07 bklaptop kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
Mar 27 18:50:07 bklaptop kernel: ehci_hcd 0000:03:00.2: submit_async 1 urb dd4eba40 ep1in len 13, qtd dd580180 [qh dd4ee180]
Mar 27 18:50:37 bklaptop kernel: usb-storage: command_abort called
Mar 27 18:50:37 bklaptop kernel: usb-storage: usb_stor_stop_transport called
Mar 27 18:50:37 bklaptop kernel: usb-storage: -- cancelling URB
Mar 27 18:50:37 bklaptop kernel: ehci_hcd 0000:03:00.2: irq status 0020 IAA
Mar 27 18:50:37 bklaptop kernel: ehci_hcd 0000:03:00.2: ehci_urb_done 1 urb dd4eba40 ep1in status -104 len 0/13
Mar 27 18:50:37 bklaptop kernel: usb-storage: Status code -104; transferred 0/13
Mar 27 18:50:37 bklaptop kernel: usb-storage: -- transfer cancelled
Mar 27 18:50:37 bklaptop kernel: usb-storage: Bulk status result = 4
Mar 27 18:50:37 bklaptop kernel: usb-storage: -- command was aborted
Mar 27 18:50:37 bklaptop kernel: usb-storage: usb_stor_Bulk_reset called
Mar 27 18:50:37 bklaptop kernel: usb-storage: usb_stor_control_msg: rq=ff rqtype=21 value=0000 index=00 len=0
Mar 27 18:50:37 bklaptop kernel: ehci_hcd 0000:03:00.2: submit_async 1 urb dd4eba40 ep0out len 0, qtd dd580120 [qh dd4ee080]
Mar 27 18:50:57 bklaptop kernel: usb-storage: Timeout -- cancelling URB
Mar 27 18:50:57 bklaptop kernel: ehci_hcd 0000:03:00.2: irq status 0020 IAA
Mar 27 18:50:57 bklaptop kernel: ehci_hcd 0000:03:00.2: ehci_urb_done 1 urb dd4eba40 ep0out status -104 len 0/0
Mar 27 18:50:57 bklaptop kernel: usb-storage: Soft reset failed: -104
Mar 27 18:50:57 bklaptop kernel: usb-storage: scsi command aborted
Mar 27 18:50:57 bklaptop kernel: usb-storage: *** thread sleeping.
Mar 27 18:50:57 bklaptop kernel: usb-storage: queuecommand called
Mar 27 18:50:57 bklaptop kernel: usb-storage: *** thread awakened.
Mar 27 18:50:57 bklaptop kernel: usb-storage: Command TEST_UNIT_READY (6 bytes)


While I'm here, the following oops occured a number of times when pulling the plug on the device while it was locked up (I love the 2.6 in-built oops decoder!) These are on vanilla 2.6.4

Mar 27 19:03:58 bklaptop kernel: kernel BUG at drivers/usb/storage/usb.c:858!
Mar 27 19:03:58 bklaptop kernel: invalid operand: 0000 [#1]
Mar 27 19:03:58 bklaptop kernel: PREEMPT
Mar 27 19:03:58 bklaptop kernel: CPU: 0
Mar 27 19:03:58 bklaptop kernel: EIP: 0f20:[<e196c46f>] Tainted: PF
Mar 27 19:03:58 bklaptop kernel: EFLAGS: 00010202
Mar 27 19:03:58 bklaptop kernel: EIP is at usb_stor_release_resources+0xef/0x120 [usb_storage]
Mar 27 19:03:58 bklaptop kernel: eax: 00000032 ebx: dde3a400 ecx: 00000000 edx: df3b0000
Mar 27 19:03:58 bklaptop kernel: esi: e1973680 edi: dde3ae00 ebp: df3b1e70 esp: df3b1e64
Mar 27 19:03:58 bklaptop kernel: ds: 0f3b es: 0f3b ss: 0f28
Mar 27 19:03:58 bklaptop kernel: Process khubd (pid: 247, threadinfo=df3b0000 task=df3b3780)
Mar 27 19:03:58 bklaptop kernel: Stack: e196e880 df6f7d98 df6f7d60 df3b1e8c e18fa176 dde3a400 df6f7d60 ddbd7820
Mar 27 19:03:58 bklaptop kernel: df6f7d74 e19736a0 df3b1ea4 c02289a6 df6f7d74 df6f7d9c df6f7d74 dde3aecc
Mar 27 19:03:58 bklaptop kernel: df3b1ebc c0228ae3 df6f7d74 df6f7dcc df6f7d74 dde3aecc df3b1ed0 c02279ad
Mar 27 19:03:58 bklaptop kernel: Call Trace:
Mar 27 19:03:58 bklaptop kernel: [<e18fa176>] usb_unbind_interface+0x76/0x80 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<c02289a6>] device_release_driver+0x66/0x70
Mar 27 19:03:58 bklaptop kernel: [<c0228ae3>] bus_remove_device+0x53/0xa0
Mar 27 19:03:58 bklaptop kernel: [<c02279ad>] device_del+0x5d/0xa0
Mar 27 19:03:58 bklaptop kernel: [<e190127e>] usb_disable_device+0xde/0x120 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<e18fadc4>] usb_disconnect+0xa4/0x140 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<e18fd5af>] hub_port_connect_change+0x2ef/0x300 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<e18fd977>] hub_events+0x3b7/0x480 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<e18fdaa5>] hub_thread+0x65/0x2a0 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<c010c67e>] ret_from_fork+0x6/0x14
Mar 27 19:03:58 bklaptop kernel: [<c011ff00>] default_wake_function+0x0/0x20
Mar 27 19:03:58 bklaptop kernel: [<e18fda40>] hub_thread+0x0/0x2a0 [usbcore]
Mar 27 19:03:58 bklaptop kernel: [<c010a2b9>] kernel_thread_helper+0x5/0xc
Mar 27 19:03:58 bklaptop kernel:


Mar 27 19:13:29 bklaptop kernel: ------------[ cut here ]------------
Mar 27 19:13:29 bklaptop kernel: kernel BUG at drivers/usb/storage/usb.c:858!
Mar 27 19:13:29 bklaptop kernel: invalid operand: 0000 [#1]
Mar 27 19:13:29 bklaptop kernel: PREEMPT
Mar 27 19:13:29 bklaptop kernel: CPU: 0
Mar 27 19:13:29 bklaptop kernel: EIP: 0f20:[<e196c46f>] Tainted: PF
Mar 27 19:13:29 bklaptop kernel: EFLAGS: 00010202
Mar 27 19:13:29 bklaptop kernel: EIP is at usb_stor_release_resources+0xef/0x120 [usb_storage]
Mar 27 19:13:29 bklaptop kernel: eax: 00000032 ebx: dd8ad200 ecx: 00000000 edx: df470000
Mar 27 19:13:29 bklaptop kernel: esi: e1973680 edi: dd8ad800 ebp: df471e70 esp: df471e64
Mar 27 19:13:29 bklaptop kernel: ds: 0f3b es: 0f3b ss: 0f28
Mar 27 19:13:29 bklaptop kernel: Process khubd (pid: 247, threadinfo=df470000 task=df473780)
Mar 27 19:13:29 bklaptop kernel: Stack: e196e880 dedbc598 dedbc560 df471e8c e18fa176 dd8ad200 dedbc560 dd4a4d20
Mar 27 19:13:29 bklaptop kernel: dedbc574 e19736a0 df471ea4 c02289a6 dedbc574 dedbc59c dedbc574 dd8ad8cc
Mar 27 19:13:29 bklaptop kernel: df471ebc c0228ae3 dedbc574 dedbc5cc dedbc574 dd8ad8cc df471ed0 c02279ad
Mar 27 19:13:29 bklaptop kernel: Call Trace:
Mar 27 19:13:29 bklaptop kernel: [<e18fa176>] usb_unbind_interface+0x76/0x80 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<c02289a6>] device_release_driver+0x66/0x70
Mar 27 19:13:29 bklaptop kernel: [<c0228ae3>] bus_remove_device+0x53/0xa0
Mar 27 19:13:29 bklaptop kernel: [<c02279ad>] device_del+0x5d/0xa0
Mar 27 19:13:29 bklaptop kernel: [<e190127e>] usb_disable_device+0xde/0x120 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<e18fadc4>] usb_disconnect+0xa4/0x140 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<e18fd5af>] hub_port_connect_change+0x2ef/0x300 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<e18fd977>] hub_events+0x3b7/0x480 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<e18fdaa5>] hub_thread+0x65/0x2a0 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<c010c67e>] ret_from_fork+0x6/0x14
Mar 27 19:13:29 bklaptop kernel: [<c011ff00>] default_wake_function+0x0/0x20
Mar 27 19:13:29 bklaptop kernel: [<e18fda40>] hub_thread+0x0/0x2a0 [usbcore]
Mar 27 19:13:29 bklaptop kernel: [<c010a2b9>] kernel_thread_helper+0x5/0xc
Mar 27 19:13:29 bklaptop kernel:
Mar 27 19:13:29 bklaptop kernel: Code: 0f 0b 5a 03 8a f3 96 e1 eb cc 8d b4 26 00 00 00 00 31 d2 89


Mar 27 19:23:45 bklaptop kernel: SCSI error : <0 0 0 0> return code = 0x50000
Mar 27 19:23:45 bklaptop kernel: end_request: I/O error, dev sda, sector 0
Mar 27 19:23:45 bklaptop kernel: Buffer I/O error on device sda, logical block 0
Mar 27 19:23:45 bklaptop kernel: lost page write due to I/O error on sda
Mar 27 19:23:45 bklaptop kernel: SCSI error : <0 0 0 0> return code = 0x10000
Mar 27 19:23:45 bklaptop kernel: end_request: I/O error, dev sda, sector 1
Mar 27 19:23:45 bklaptop kernel: Buffer I/O error on device sda, logical block 1
Mar 27 19:23:45 bklaptop kernel: lost page write due to I/O error on sda
Mar 27 19:23:45 bklaptop kernel: usb-storage: -- sending exit command to thread
Mar 27 19:23:45 bklaptop kernel: ------------[ cut here ]------------
Mar 27 19:23:45 bklaptop kernel: kernel BUG at drivers/usb/storage/usb.c:858!
Mar 27 19:23:45 bklaptop kernel: invalid operand: 0000 [#1]
Mar 27 19:23:45 bklaptop kernel: PREEMPT
Mar 27 19:23:45 bklaptop kernel: CPU: 0
Mar 27 19:23:45 bklaptop kernel: EIP: 0f20:[<e196c46f>] Tainted: PF
Mar 27 19:23:45 bklaptop kernel: EFLAGS: 00010202
Mar 27 19:23:45 bklaptop kernel: EIP is at usb_stor_release_resources+0xef/0x120 [usb_storage]
Mar 27 19:23:45 bklaptop kernel: eax: 00000032 ebx: ddb67600 ecx: 00000001 edx: c0377538
Mar 27 19:23:45 bklaptop kernel: esi: e1973680 edi: ddb67a00 ebp: df611e70 esp: df611e64
Mar 27 19:23:45 bklaptop kernel: ds: 0f3b es: 0f3b ss: 0f28
Mar 27 19:23:45 bklaptop kernel: Process khubd (pid: 237, threadinfo=df610000 task=df613780)
Mar 27 19:23:45 bklaptop kernel: Stack: e196e880 df7b9798 df7b9760 df611e8c e18fa176 ddb67600 df7b9760 dd84d720
Mar 27 19:23:45 bklaptop kernel: df7b9774 e19736a0 df611ea4 c02289a6 df7b9774 df7b979c df7b9774 ddb67acc
Mar 27 19:23:45 bklaptop kernel: df611ebc c0228ae3 df7b9774 df7b97cc df7b9774 ddb67acc df611ed0 c02279ad
Mar 27 19:23:45 bklaptop kernel: Call Trace:
Mar 27 19:23:45 bklaptop kernel: [<e18fa176>] usb_unbind_interface+0x76/0x80 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<c02289a6>] device_release_driver+0x66/0x70
Mar 27 19:23:45 bklaptop kernel: [<c0228ae3>] bus_remove_device+0x53/0xa0
Mar 27 19:23:45 bklaptop kernel: [<c02279ad>] device_del+0x5d/0xa0
Mar 27 19:23:45 bklaptop kernel: [<e190127e>] usb_disable_device+0xde/0x120 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<e18fadc4>] usb_disconnect+0xa4/0x140 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<e18fd5af>] hub_port_connect_change+0x2ef/0x300 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<e18fd977>] hub_events+0x3b7/0x480 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<e18fdaa5>] hub_thread+0x65/0x2a0 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<c010c67e>] ret_from_fork+0x6/0x14
Mar 27 19:23:45 bklaptop kernel: [<c011ff00>] default_wake_function+0x0/0x20
Mar 27 19:23:45 bklaptop kernel: [<e18fda40>] hub_thread+0x0/0x2a0 [usbcore]
Mar 27 19:23:45 bklaptop kernel: [<c010a2b9>] kernel_thread_helper+0x5/0xc
Mar 27 19:23:45 bklaptop kernel:
Mar 27 19:23:45 bklaptop kernel: Code: 0f 0b 5a 03 8a f3 96 e1 eb cc 8d b4 26 00 00 00 00 31 d2 89




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to