Re: Devices not supporting read-6....

From: Robin T. Miller (Robin.Miller@compaq.com)
Date: Fri Jan 21 2000 - 10:27:24 EST


Hi Alan,
        I'm attaching mail I exchanged with Jens Axboe... apparently, I forgot to
copy linux-scsi on my response.

        There are other appJens approaches, but Jen's should work Ok.

        Sorry, I don't have his patches.

Regards,
Robin

Alan Cox wrote:
>
> > If you read the SCSI MultiMedia spec, you'll notice 6-byte Read/Write commands
> > are not mandatory (true for ATAPI & SCSI). So, I'd say the drivers need to be updated.
>
> Not the drivers fortunately - just the sd.c code that dispatches commands. If
> its now allowed then it shouldnt be a blacklist item , it has to get handled
> properly.
>
> Is there a "supports read-10" flag anywhere helpful in the drive data pages ?
>
> Alan
================================================================================
 Subject: Re: ten byte writes/reads
        Date: Thu, 02 Dec 1999 16:27:59 -0500
        From: "Robin T. Miller" <Robin.Miller@compaq.com>
Organization: Data Products Group (DPG)
          To: Jens Axboe <axboe@image.dk>
  References: 1

Hi All,
        I think it's pretty safe to assume SCSI disks will accept 10-byte Read/Write
CDB's. In fact, I reviewed several O/S drivers recently, and both NT and SCO
only use 10 byte CDB's.

        I'm not surprised the 6-byte Write didn't work with your DVD-RAM, since 10-byte
CDB's are mandatory for Optical and DVD's, byte 6-byte CDB's are optional.

        Sure, reverting to a 6-byte request can be done on Illegal Request sense, but
unless you have some very old SCSI-1/CCS drives, I'm not sure you'll see a
problem.

Cheers,
Robin

Jens Axboe wrote:
>
> Hi,
>
> After having battled with a DVD-RAM that does not (properly
> at least) support WRITE_6 for some time, I started looking at
> the 10/6 byte command logic in sd. It is not clear what the
> intended effect of the 'ten' flag is.
>
> sd_init_onedisk() unconditionally sets the 'ten' flag and
> requests are queued as READ_10/WRITE_10 if it is set _and_
> we want to transfer more than 256 blocks or go beyond
> a block size that fits in the _6 variants.
>
> The overhead of using a 10 byte command data block versus
> the 6 byte equivalent is not worth worrying about IMHO.
> Therefore I propose the following change to be made:
>
> Always use WRITE_10/READ_10 when the 'ten' flag is set.
> For devices that do not support it, the behaviour will
> be to reverse to WRITE_6/READ_6 upon the first failed
> read/write. An alternative solution would be to probe
> the device in sd_init_onedisk() and set the flag conditionally.
>
> Attached patch is against 2.2.14-pre9.
>
> --
> * Jens Axboe <axboe@image.dk>
> * Linux CD-ROM Maintainer
> * http://www.kernel.dk
>
> --------------------------------------------------------------------------------
>
> sd_ten.diffName: sd_ten.diff
> Type: Plain Text (text/plain)

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



This archive was generated by hypermail 2b29 : Sun Jan 23 2000 - 21:00:26 EST