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
