From: kys@exchange.microsoft.com To: linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, ohering@suse.com, linux-scsi@vger.kernel.org, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, martin.petersen@oracle.com, hare@suse.de, James.Bottomley@HansenPartnership.com Cc: Long Li <longli@microsoft.com>, "K. Y. Srinivasan" <kys@microsoft.com>, <stable@vger.kernel.org> Subject: [PATCH 4/6] storvsc: use tagged SRB requests if supported by the device Date: Wed, 14 Dec 2016 18:46:01 -0800 [thread overview] Message-ID: <1481769963-2069-4-git-send-email-kys@exchange.microsoft.com> (raw) In-Reply-To: <1481769963-2069-1-git-send-email-kys@exchange.microsoft.com> From: Long Li <longli@microsoft.com> Properly set SRB flags when hosting device supports tagged queuing. This patch improves the performance on Fiber Channel disks. Signed-off-by: Long Li <longli@microsoft.com> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> --- drivers/scsi/storvsc_drv.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index 63f6b1a..3209387 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 - @@ -1549,6 +1551,13 @@ 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.7.4.1
WARNING: multiple messages have this Message-ID (diff)
From: kys@exchange.microsoft.com To: linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, ohering@suse.com, linux-scsi@vger.kernel.org, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, martin.petersen@oracle.com, hare@suse.de, James.Bottomley@HansenPartnership.com Cc: stable@vger.kernel.org Subject: [PATCH 4/6] storvsc: use tagged SRB requests if supported by the device Date: Wed, 14 Dec 2016 18:46:01 -0800 [thread overview] Message-ID: <1481769963-2069-4-git-send-email-kys@exchange.microsoft.com> (raw) In-Reply-To: <1481769963-2069-1-git-send-email-kys@exchange.microsoft.com> From: Long Li <longli@microsoft.com> Properly set SRB flags when hosting device supports tagged queuing. This patch improves the performance on Fiber Channel disks. Signed-off-by: Long Li <longli@microsoft.com> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> --- drivers/scsi/storvsc_drv.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index 63f6b1a..3209387 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 - @@ -1549,6 +1551,13 @@ 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.7.4.1
next prev parent reply other threads:[~2016-12-15 0:50 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-12-15 2:45 [PATCH 0/6] storvsc: Miscellaneous fixes and enhancements kys 2016-12-15 2:45 ` kys 2016-12-15 2:45 ` [PATCH 1/6] storvsc: Enable tracking of queue depth kys 2016-12-15 2:45 ` kys 2016-12-15 2:45 ` [PATCH 2/6] storvsc: Remove the restriction on max segment size kys 2016-12-15 2:45 ` kys 2016-12-15 2:46 ` [PATCH 3/6] storvsc: Enable multi-queue support kys 2016-12-15 2:46 ` kys [this message] 2016-12-15 2:46 ` [PATCH 4/6] storvsc: use tagged SRB requests if supported by the device kys 2016-12-15 2:46 ` [PATCH 5/6] storvsc: properly handle SRB_ERROR when sense message is present kys 2016-12-15 2:46 ` kys 2016-12-15 2:46 ` [PATCH 6/6] storvsc: properly set residual data length on errors kys 2016-12-15 2:46 ` kys 2016-12-20 22:43 ` [PATCH 0/6] storvsc: Miscellaneous fixes and enhancements Martin K. Petersen 2016-12-20 22:43 ` Martin K. Petersen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1481769963-2069-4-git-send-email-kys@exchange.microsoft.com \ --to=kys@exchange.microsoft.com \ --cc=James.Bottomley@HansenPartnership.com \ --cc=apw@canonical.com \ --cc=devel@linuxdriverproject.org \ --cc=hare@suse.de \ --cc=jasowang@redhat.com \ --cc=kys@microsoft.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=longli@microsoft.com \ --cc=martin.petersen@oracle.com \ --cc=ohering@suse.com \ --cc=stable@vger.kernel.org \ --cc=vkuznets@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.