Re: READ SCSI cmd seems to fail on SATA optical devices...

From: Tejun Heo
Date: Mon Nov 13 2006 - 21:02:56 EST


Hello, Mattieu Fluhr.

Mathieu Fluhr wrote:
The problem is that, on SATA devices controlled by libata, on some big
files (like for example a 600 MB file) the READ command seems to fail
and outputs garbage (not 1 or 2 bytes diff, but the whole buffer).
-> This problem does not come out everytime, and each time on different sectors.

Please note that:
- it is not chipset dependant (tested on nforce4 and sii3114)
- it is not medium or device dependant

Hmmm... Interesting. So, you're reading the media by directly issuing commands through the sg interface, right? Can you please try the followings?

* Try using /dev/srX or /dev/scdX device instead of /dev/sgX. You can use the command SG_IO but the code path is different, so it will help us rule out sg bug.

* Perform rounds of read-verify test using standard block interface (ie. simply opening /dev/srX and reading it).

[--snip--]
- When I force the bus type to be IDE, our software will then send ATA
commands. In this case, everything works like a charm. No errors at all.

What do you mean by 'sending ATA commands'? libata exports all devices as SCSI devices. For ATA devices, you can use ATA passthrough but you send CDBs to ATAPI devices anyway.

Thanks.

--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/