Devices not supporting read-6....

Robin T. Miller Robin.Miller en compaq.com
Sab Ene 22 10:08:13 CST 2000


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 en compaq.com>
Organization: Data Products Group (DPG)
          To: Jens Axboe <axboe en 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 en 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 en vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



Más información sobre la lista de distribución Ayuda