| From foo@baz Sun Jun 17 12:07:33 CEST 2018 |
| From: Long Li <longli@microsoft.com> |
| Date: Thu, 22 Mar 2018 14:47:18 -0700 |
| Subject: scsi: storvsc: Set up correct queue depth values for IDE devices |
| |
| From: Long Li <longli@microsoft.com> |
| |
| [ Upstream commit f286299c1d0ba5e2ca0377610307b370fe178767 ] |
| |
| Unlike SCSI and FC, we don't use multiple channels for IDE. Also fix |
| the calculation for sub-channels. |
| |
| Signed-off-by: Long Li <longli@microsoft.com> |
| Reviewed-by: Michael Kelley <mikelley@microsoft.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/scsi/storvsc_drv.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/scsi/storvsc_drv.c |
| +++ b/drivers/scsi/storvsc_drv.c |
| @@ -1722,11 +1722,14 @@ static int storvsc_probe(struct hv_devic |
| max_targets = STORVSC_MAX_TARGETS; |
| max_channels = STORVSC_MAX_CHANNELS; |
| /* |
| - * On Windows8 and above, we support sub-channels for storage. |
| + * On Windows8 and above, we support sub-channels for storage |
| + * on SCSI and FC controllers. |
| * The number of sub-channels offerred is based on the number of |
| * VCPUs in the guest. |
| */ |
| - max_sub_channels = (num_cpus / storvsc_vcpus_per_sub_channel); |
| + if (!dev_is_ide) |
| + max_sub_channels = |
| + (num_cpus - 1) / storvsc_vcpus_per_sub_channel; |
| } |
| |
| scsi_driver.can_queue = (max_outstanding_req_per_channel * |