Hi Alan,

> > I still got problems with my Genesys USB-IDE converter after applying
> > Alans latest patch (max_sectors=64, 100us delay).
>
> I rather suspected it was too much to hope that the patch would fix things
> for everybody.

Thanks for still trying to come up with possible solutions...

> You have to turn on the usb-storage debugging option in your kernel's
> configuration; without it the log just doesn't have enough information to
> tell what's happening.

Ok, here we go with full logging:

[...]
Jul 11 00:11:38 fire kernel: usb-storage: *** thread awakened.
Jul 11 00:11:38 fire kernel: usb-storage: Command READ_10 (10 bytes)
Jul 11 00:11:38 fire kernel: usb-storage:  28 00 00 00 4d 57 00 00 40 00
Jul 11 00:11:38 fire kernel: usb-storage: Bulk Command S 0x43425355 T 0x73c L 32768 F 
128 Trg 0 LUN 0 CL 10
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
Jul 11 00:11:38 fire kernel: usb-storage: Status code 0; transferred 31/31
Jul 11 00:11:38 fire kernel: usb-storage: -- transfer complete
Jul 11 00:11:38 fire kernel: usb-storage: Bulk command transfer result=0
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_bulk_transfer_sglist: xfer 32768 
bytes, 2 entries
Jul 11 00:11:38 fire kernel: usb-storage: Status code 0; transferred 32768/32768
Jul 11 00:11:38 fire kernel: usb-storage: -- transfer complete
Jul 11 00:11:38 fire kernel: usb-storage: Bulk data transfer result 0x0
Jul 11 00:11:38 fire kernel: usb-storage: Attempting to get CSW...
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
Jul 11 00:11:38 fire kernel: usb-storage: Status code 0; transferred 13/13
Jul 11 00:11:38 fire kernel: usb-storage: -- transfer complete
Jul 11 00:11:38 fire kernel: usb-storage: Bulk status result = 0
Jul 11 00:11:38 fire kernel: usb-storage: Bulk Status S 0x53425355 T 0x73c R 0 Stat 0x0
Jul 11 00:11:38 fire kernel: usb-storage: scsi cmd done, result=0x0
Jul 11 00:11:38 fire kernel: usb-storage: queuecommand called
Jul 11 00:11:38 fire kernel: usb-storage: *** thread sleeping.
Jul 11 00:11:38 fire kernel: usb-storage: *** thread awakened.
Jul 11 00:11:38 fire kernel: usb-storage: Command READ_10 (10 bytes)
Jul 11 00:11:38 fire kernel: usb-storage:  28 00 00 00 4d 97 00 00 40 00
Jul 11 00:11:38 fire kernel: usb-storage: Bulk Command S 0x43425355 T 0x73d L 32768 F 
128 Trg 0 LUN 0 CL 10
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
Jul 11 00:11:38 fire kernel: usb-storage: Status code 0; transferred 31/31
Jul 11 00:11:38 fire kernel: usb-storage: -- transfer complete
Jul 11 00:11:38 fire kernel: usb-storage: Bulk command transfer result=0
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_bulk_transfer_sglist: xfer 32768 
bytes, 1 entries
Jul 11 00:11:38 fire kernel: usb-storage: Status code -71; transferred 11264/32768
Jul 11 00:11:38 fire kernel: usb-storage: -- unknown error
Jul 11 00:11:38 fire kernel: usb-storage: Bulk data transfer result 0x4
Jul 11 00:11:38 fire kernel: usb-storage: -- transport indicates error, resetting
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_Bulk_reset called
Jul 11 00:11:38 fire kernel: usb-storage: usb_stor_control_msg: rq=ff rqtype=21 
value=0000 index=00 len=0
Jul 11 00:11:52 fire kernel: usb-storage: Timeout -- cancelling URB
Jul 11 00:11:52 fire kernel: usb-storage: Soft reset failed: -104
Jul 11 00:11:52 fire kernel: usb-storage: scsi cmd done, result=0x70000
Jul 11 00:11:52 fire kernel: usb-storage: *** thread sleeping.
Jul 11 00:11:52 fire kernel: usb-storage: queuecommand called
Jul 11 00:11:52 fire kernel: usb-storage: *** thread awakened.
Jul 11 00:11:52 fire kernel: usb-storage: Command READ_10 (10 bytes)
Jul 11 00:11:52 fire kernel: usb-storage:  28 00 00 00 4d 97 00 00 40 00
Jul 11 00:11:52 fire kernel: usb-storage: Bulk Command S 0x43425355 T 0x73e L 32768 F 
128 Trg 0 LUN 0 CL 10
Jul 11 00:11:52 fire kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
Jul 11 00:11:52 fire kernel: usb-storage: Status code 0; transferred 31/31
Jul 11 00:11:52 fire kernel: usb-storage: -- transfer complete
Jul 11 00:11:52 fire kernel: usb-storage: Bulk command transfer result=0
Jul 11 00:11:52 fire kernel: usb-storage: usb_stor_bulk_transfer_sglist: xfer 32768 
bytes, 1 entries
Jul 11 00:11:52 fire kernel: usb-storage: Status code -121; transferred 21517/32768
Jul 11 00:11:52 fire kernel: usb-storage: -- short read transfer
Jul 11 00:11:52 fire kernel: usb-storage: Bulk data transfer result 0x1
Jul 11 00:11:52 fire kernel: usb-storage: Attempting to get CSW...
Jul 11 00:11:52 fire kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
Jul 11 00:11:52 fire kernel: usb-storage: Status code -71; transferred 0/13
Jul 11 00:11:52 fire kernel: usb-storage: -- unknown error
Jul 11 00:11:52 fire kernel: usb-storage: Bulk status result = 4
Jul 11 00:11:52 fire kernel: usb-storage: -- transport indicates error, resetting
Jul 11 00:11:52 fire kernel: usb-storage: usb_stor_Bulk_reset called
Jul 11 00:11:52 fire kernel: usb-storage: usb_stor_control_msg: rq=ff rqtype=21 
value=0000 index=00 len=0
Jul 11 00:11:52 fire kernel: usb-storage: Soft reset failed: -71
Jul 11 00:11:52 fire kernel: usb-storage: scsi cmd done, result=0x70000
Jul 11 00:11:52 fire kernel: usb-storage: *** thread sleeping.
[...]
Jul 11 00:11:59 fire kernel: usb-storage: *** thread awakened.
Jul 11 00:11:59 fire kernel: usb-storage: Command READ_10 (10 bytes)
Jul 11 00:12:00 fire kernel: usb-storage:  28 00 00 00 4d 97 00 00 40 00
Jul 11 00:12:00 fire kernel: usb-storage: Bulk Command S 0x43425355 T 0x741 L 32768 F 
128 Trg 0 LUN 0 CL 10
Jul 11 00:12:00 fire kernel: usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
Jul 11 00:12:00 fire kernel: usb-storage: Status code -71; transferred 0/31
Jul 11 00:12:00 fire kernel: usb-storage: -- unknown error
Jul 11 00:12:00 fire kernel: usb-storage: Bulk command transfer result=4
Jul 11 00:12:00 fire kernel: usb-storage: -- transport indicates error, resetting
Jul 11 00:12:00 fire kernel: usb-storage: usb_stor_Bulk_reset called
Jul 11 00:12:00 fire kernel: usb-storage: usb_stor_control_msg: rq=ff rqtype=21 
value=0000 index=00 len=0
Jul 11 00:12:00 fire kernel: usb-storage: Soft reset failed: -71
Jul 11 00:12:00 fire kernel: usb-storage: scsi cmd done, result=0x70000
Jul 11 00:12:00 fire kernel: usb-storage: *** thread sleeping.
Jul 11 00:12:00 fire kernel: SCSI error : <0 0 0 0> return code = 0x70000
Jul 11 00:12:00 fire kernel: end_request: I/O error, dev sda, sector 19863
[...]

This is from trying to mount my 200G reiser partition through dm-crypt. 
The bug is 100% reproducable with this.

I can sometimes reproduce it without dm-crypt: seldom at write and more 
often with mounting.

> You could try increasing the length of the delay that the patch adds to
> transport.c.  Make it 200us instead of 100us and see what happens.

Ok, at first glance it looks like it's working with delay >= 350us 
(I tried 200, 600, 400, 300, 350).
I can mount and have transferred some gigs - even with dm-crypt.
I'll run a torture test over night to find out if 350us is really working for me.

It seems like it hurts performance a bit. I haven't done very reliable testing,
but it seems I can now (350us) write with 9,5 MB/s where I could do 
10,5-11 with 100us (when it was working, both times without dm-cyrpt 
and debugging off).

But isn't it strange that I need more than 3 times the delay than others do? 
Maybe the position of the delay is wrong or we need to sleep at two different
positions (e.g. not just a delay between command and data, but maybe also 
between data and the next command).

Any further ideas?

Kind regards,

Gerd


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to