On Sun, 31 Oct 2004, Pat LaVarre wrote: > We also see sense byte[0] & x80 Valid clear, and bytes [3:4:5:6] INFO > zeroed. That makes me wonder why we saw Linux choose to retry another > 8 blocks along. 8 blocks * 0.5 KiB/block = 4 KiB = an x86 physical > page, I notice ... but I also notice this I/O is not aligned to page > boundaries. (Hey Alan, you still with us? Know anything of where/ > when Linux chooses to retry SCSI over USB commands?)
Linux doesn't distinguish much between SCSI over USB and SCSI over anything else. I'm not familiar with all the ins and outs of the retry code. If you're interested, you can find it in drivers/scsi/sd.c:sd_rw_intr() and drivers/scsi/scsi_lib.c:scsi_io_completion() (It does appear the requests coming through the filesystem or block device layers may be treated differently from requests coming via ioctl.) Nowhere does the code do anything special for HARDWARE ERROR sk values; they just follow the default path. As best I can tell, that just means assuming the error is unrecoverable and skipping the remainder of the current scatter-gather segment (which is likely to be a single page). Why do you say the I/O isn't aligned to page boundaries? We don't know where the data lies in memory. And the retries end up skipping exactly a single page -- that indicates the I/O _is_ page aligned. I agree that asking Genesys Logic tech support is your best bet. One person you can try (maybe not the best, but a place to start) is <[EMAIL PROTECTED]>. Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users