Thread (4 messages) 4 messages, 4 authors, 2020-01-14

RE: [PATCH] scsi: storvsc: Correctly set number of hardware queues for IDE disk

From: Long Li <longli@microsoft.com>
Date: 2020-01-14 00:09:17
Also in: linux-scsi, lkml

Subject: RE: [PATCH] scsi: storvsc: Correctly set number of hardware queues for
IDE disk

From: Long Li <longli@microsoft.com>  Sent: Saturday, January 11, 2020 12:17
AM
quoted
Commit 0ed881027690 ("scsi: storvsc: setup 1:1 mapping between
hardware queue and CPU queue") introduced a regression for disks
attached to IDE. For these disks the host VSP only offers one VMBUS
channel. Setting multiple queues can overload the VMBUS channel and
result in performance drop for high queue depth workload on system
with large number of CPUs.

Fix it by leaving the number of hardware queues to 1 (default value)
for IDE disks.

Fixes: 0ed881027690 ("scsi: storvsc: setup 1:1 mapping between
hardware queue and CPU
queue")
Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/scsi/storvsc_drv.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index f8faf8b3d965..992b28e40374 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1842,9 +1842,11 @@ static int storvsc_probe(struct hv_device *device,
 	 */
 	host->sg_tablesize = (stor_device->max_transfer_bytes >> PAGE_SHIFT);
 	/*
+	 * For non-IDE disks, the host supports multiple channels.
 	 * Set the number of HW queues we are supporting.
 	 */
-	host->nr_hw_queues = num_present_cpus();
+	if (dev_id->driver_data != IDE_GUID)
This function already has a pre-computed value of this test in
the local variable "dev_is_ide".   It would be more consistent
to just use it.

Michael
I will send v2 to address this.

Long
quoted
+		host->nr_hw_queues = num_present_cpus();

 	/*
 	 * Set the error handler work queue.
--
2.20.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help