scsi: storvsc: Add ability to change scsi queue depth
Adding functionality to allow the SCSI queue depth to be changed by utilizing the "scsi_change_queue_depth" function. [mkp: checkpatch] Signed-off-by: Branden Bonaby <brandonbonaby94@gmail.com> Reviewed-by: Michael Kelley <mikelley@microsoft.com> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
Martin K. Petersen

parent
6ea3b189f7
commit
adfbd028e1
@@ -387,6 +387,7 @@ enum storvsc_request_type {
|
|||||||
|
|
||||||
static int storvsc_ringbuffer_size = (128 * 1024);
|
static int storvsc_ringbuffer_size = (128 * 1024);
|
||||||
static u32 max_outstanding_req_per_channel;
|
static u32 max_outstanding_req_per_channel;
|
||||||
|
static int storvsc_change_queue_depth(struct scsi_device *sdev, int queue_depth);
|
||||||
|
|
||||||
static int storvsc_vcpus_per_sub_channel = 4;
|
static int storvsc_vcpus_per_sub_channel = 4;
|
||||||
|
|
||||||
@@ -1711,6 +1712,7 @@ static struct scsi_host_template scsi_driver = {
|
|||||||
.dma_boundary = PAGE_SIZE-1,
|
.dma_boundary = PAGE_SIZE-1,
|
||||||
.no_write_same = 1,
|
.no_write_same = 1,
|
||||||
.track_queue_depth = 1,
|
.track_queue_depth = 1,
|
||||||
|
.change_queue_depth = storvsc_change_queue_depth,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -1917,6 +1919,15 @@ err_out0:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Change a scsi target's queue depth */
|
||||||
|
static int storvsc_change_queue_depth(struct scsi_device *sdev, int queue_depth)
|
||||||
|
{
|
||||||
|
if (queue_depth > scsi_driver.can_queue)
|
||||||
|
queue_depth = scsi_driver.can_queue;
|
||||||
|
|
||||||
|
return scsi_change_queue_depth(sdev, queue_depth);
|
||||||
|
}
|
||||||
|
|
||||||
static int storvsc_remove(struct hv_device *dev)
|
static int storvsc_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct storvsc_device *stor_device = hv_get_drvdata(dev);
|
struct storvsc_device *stor_device = hv_get_drvdata(dev);
|
||||||
|
Reference in New Issue
Block a user