Re: [PATCH] scsi: associate bio write hint with WRITE CDB

From: Randall Huang
Date: Thu Jan 03 2019 - 04:48:07 EST


On Wed, Jan 02, 2019 at 11:51:33PM -0800, Christoph Hellwig wrote:
> On Wed, Dec 26, 2018 at 12:15:04PM +0800, Randall Huang wrote:
> > In SPC-3, WRITE(10)/(16) support grouping function.
> > Let's associate bio write hint with group number for
> > enabling StreamID or Turbo Write feature.
> >
> > Signed-off-by: Randall Huang <huangrandall@xxxxxxxxxx>
> > ---
> > drivers/scsi/sd.c | 14 ++++++++++++--
> > 1 file changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> > index 4b49cb67617e..28bfa9ed2b54 100644
> > --- a/drivers/scsi/sd.c
> > +++ b/drivers/scsi/sd.c
> > @@ -1201,7 +1201,12 @@ static int sd_setup_read_write_cmnd(struct scsi_cmnd *SCpnt)
> > SCpnt->cmnd[11] = (unsigned char) (this_count >> 16) & 0xff;
> > SCpnt->cmnd[12] = (unsigned char) (this_count >> 8) & 0xff;
> > SCpnt->cmnd[13] = (unsigned char) this_count & 0xff;
> > - SCpnt->cmnd[14] = SCpnt->cmnd[15] = 0;
> > + if (rq_data_dir(rq) == WRITE) {
> > + SCpnt->cmnd[14] = rq->bio->bi_write_hint & 0x3f;
> > + } else {
> > + SCpnt->cmnd[14] = 0;
> > + }
>
> No need for braces here.
Already send a new version
>
> But what I'm more worried about is devices not recognizing the feature
> throwing up on the field. Can you check what SBC version first
> references these or come up with some other decently smart conditional?
My reference is SCSI Block Commands â 3 (SBC-3) Revision 25.
Section 5.32 WRITE (10) and 5.34 WRITE (16)

> Maybe Martin has a good idea, too.