提交 7b571c19 编写于 作者: L Long Li 提交者: Martin K. Petersen

scsi: storvsc: Correctly set number of hardware queues for IDE disk

Commit 0ed88102 ("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: 0ed88102 ("scsi: storvsc: setup 1:1 mapping between hardware queue and CPU queue")
Link: https://lore.kernel.org/r/1578960516-108228-1-git-send-email-longli@linuxonhyperv.comReviewed-by: NMing Lei <ming.lei@redhat.com>
Signed-off-by: NLong Li <longli@microsoft.com>
Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
上级 42ec15ce
......@@ -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_is_ide)
host->nr_hw_queues = num_present_cpus();
/*
* Set the error handler work queue.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册