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

Reply via email to