On Tue, Sep 06, 2016 at 02:25:41PM -0700, Long Li wrote: > From: Long Li <longli@xxxxxxxxxxxxx> > > Properly set SRB flags when hosting device supports tagged queuing. This patch improves the performance on Fiber Channel disks. ENOSIGNEDOFF and please use checkpatch.pl on the patch. > > --- > drivers/scsi/storvsc_drv.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > index 8ccfc9e..a8f3e4c 100644 > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -136,6 +136,8 @@ struct hv_fc_wwn_packet { > #define SRB_FLAGS_PORT_DRIVER_RESERVED 0x0F000000 > #define SRB_FLAGS_CLASS_DRIVER_RESERVED 0xF0000000 > > +#define SP_UNTAGGED ((unsigned char) ~0) > +#define SRB_SIMPLE_TAG_REQUEST 0x20 > > /* > * Platform neutral description of a scsi request - > @@ -1451,6 +1453,12 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) > vm_srb->win8_extension.srb_flags |= > SRB_FLAGS_DISABLE_SYNCH_TRANSFER; > > + if(scmnd->device->tagged_supported) { > + vm_srb->win8_extension.srb_flags |= (SRB_FLAGS_QUEUE_ACTION_ENABLE | SRB_FLAGS_NO_QUEUE_FREEZE); > + vm_srb->win8_extension.queue_tag = SP_UNTAGGED; > + vm_srb->win8_extension.queue_action = SRB_SIMPLE_TAG_REQUEST; > + } > + > /* Build the SRB */ > switch (scmnd->sc_data_direction) { > case DMA_TO_DEVICE: > -- > 1.8.5.6 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html