diff options
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_gbl.h | 1 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 10 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 8 |
3 files changed, 19 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index b12de0176246..5347e35e7d61 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h | |||
@@ -65,6 +65,7 @@ extern int ql2xfdmienable; | |||
65 | extern int ql2xallocfwdump; | 65 | extern int ql2xallocfwdump; |
66 | extern int ql2xextended_error_logging; | 66 | extern int ql2xextended_error_logging; |
67 | extern int ql2xqfullrampup; | 67 | extern int ql2xqfullrampup; |
68 | extern int ql2xqfulltracking; | ||
68 | extern int ql2xiidmaenable; | 69 | extern int ql2xiidmaenable; |
69 | extern int ql2xmaxqueues; | 70 | extern int ql2xmaxqueues; |
70 | extern int ql2xmultique_tag; | 71 | extern int ql2xmultique_tag; |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 41e50c2bec0f..eb35d2050f7a 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -765,6 +765,9 @@ qla2x00_adjust_sdev_qdepth_up(struct scsi_device *sdev, void *data) | |||
765 | struct qla_hw_data *ha = vha->hw; | 765 | struct qla_hw_data *ha = vha->hw; |
766 | struct req_que *req = NULL; | 766 | struct req_que *req = NULL; |
767 | 767 | ||
768 | if (!ql2xqfulltracking) | ||
769 | return; | ||
770 | |||
768 | req = vha->req; | 771 | req = vha->req; |
769 | if (!req) | 772 | if (!req) |
770 | return; | 773 | return; |
@@ -807,6 +810,9 @@ qla2x00_ramp_up_queue_depth(scsi_qla_host_t *vha, struct req_que *req, | |||
807 | fc_port_t *fcport; | 810 | fc_port_t *fcport; |
808 | struct scsi_device *sdev; | 811 | struct scsi_device *sdev; |
809 | 812 | ||
813 | if (!ql2xqfulltracking) | ||
814 | return; | ||
815 | |||
810 | sdev = sp->cmd->device; | 816 | sdev = sp->cmd->device; |
811 | if (sdev->queue_depth >= req->max_q_depth) | 817 | if (sdev->queue_depth >= req->max_q_depth) |
812 | return; | 818 | return; |
@@ -1125,6 +1131,8 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) | |||
1125 | scsi_status)); | 1131 | scsi_status)); |
1126 | 1132 | ||
1127 | /* Adjust queue depth for all luns on the port. */ | 1133 | /* Adjust queue depth for all luns on the port. */ |
1134 | if (!ql2xqfulltracking) | ||
1135 | break; | ||
1128 | fcport->last_queue_full = jiffies; | 1136 | fcport->last_queue_full = jiffies; |
1129 | starget_for_each_device(cp->device->sdev_target, | 1137 | starget_for_each_device(cp->device->sdev_target, |
1130 | fcport, qla2x00_adjust_sdev_qdepth_down); | 1138 | fcport, qla2x00_adjust_sdev_qdepth_down); |
@@ -1183,6 +1191,8 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt) | |||
1183 | * Adjust queue depth for all luns on the | 1191 | * Adjust queue depth for all luns on the |
1184 | * port. | 1192 | * port. |
1185 | */ | 1193 | */ |
1194 | if (!ql2xqfulltracking) | ||
1195 | break; | ||
1186 | fcport->last_queue_full = jiffies; | 1196 | fcport->last_queue_full = jiffies; |
1187 | starget_for_each_device( | 1197 | starget_for_each_device( |
1188 | cp->device->sdev_target, fcport, | 1198 | cp->device->sdev_target, fcport, |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 94e53a5fd9aa..155a204ed8e5 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -77,6 +77,14 @@ module_param(ql2xmaxqdepth, int, S_IRUGO|S_IWUSR); | |||
77 | MODULE_PARM_DESC(ql2xmaxqdepth, | 77 | MODULE_PARM_DESC(ql2xmaxqdepth, |
78 | "Maximum queue depth to report for target devices."); | 78 | "Maximum queue depth to report for target devices."); |
79 | 79 | ||
80 | int ql2xqfulltracking = 1; | ||
81 | module_param(ql2xqfulltracking, int, S_IRUGO|S_IWUSR); | ||
82 | MODULE_PARM_DESC(ql2xqfulltracking, | ||
83 | "Controls whether the driver tracks queue full status " | ||
84 | "returns and dynamically adjusts a scsi device's queue " | ||
85 | "depth. Default is 1, perform tracking. Set to 0 to " | ||
86 | "disable dynamic tracking and adjustment of queue depth."); | ||
87 | |||
80 | int ql2xqfullrampup = 120; | 88 | int ql2xqfullrampup = 120; |
81 | module_param(ql2xqfullrampup, int, S_IRUGO|S_IWUSR); | 89 | module_param(ql2xqfullrampup, int, S_IRUGO|S_IWUSR); |
82 | MODULE_PARM_DESC(ql2xqfullrampup, | 90 | MODULE_PARM_DESC(ql2xqfullrampup, |