iscsi: lower queue depth
PATCH 7/8 iscsi: lower queue depth
Quoted 1 line
From Wang Zhenyu:
High queue depth was a problem for some targets so make queue_depth adjustable
Quoted 1 line
From Mike Christie
Make default queue_depth a little lower
Signed-off-by Mike Christie <[email protected]>
Signed-off-by Alex Aizman <[email protected]>
Signed-off-by Dmitry Yusupov <[email protected]>
drivers/scsi/iscsi_tcp.c +15 -5
@@ -2402,6 +2402,15 @@ fault: }static int +iscsi_change_queue_depth (struct scsi_device *sdev,int depth) +{ +if (depth >ISCSI_MAX_CMD_PER_LUN ) + depth =ISCSI_MAX_CMD_PER_LUN ; +scsi_adjust_queue_depth (sdev,scsi_get_tag_type (sdev), depth); +return sdev->queue_depth; +} + +static int iscsi_pool_init (struct iscsi_queue *q,int max,void ***items,int item_size) {int i;
@@ -3260,13 +3269,14 @@ iscsi_r2tpool_free(struct iscsi_sessionstatic struct scsi_host_template iscsi_sht = { .name ="iSCSI Initiator over TCP/IP, v." ISCSI_VERSION_STR , - .queuecommand = iscsi_queuecommand, + .queuecommand = iscsi_queuecommand, + .change_queue_depth = iscsi_change_queue_depth, .can_queue =ISCSI_XMIT_CMDS_MAX -1 , .sg_tablesize =ISCSI_SG_TABLESIZE , - .cmd_per_lun =ISCSI_CMD_PER_LUN , - .eh_abort_handler = iscsi_eh_abort, - .eh_host_reset_handler = iscsi_eh_host_reset, - .use_clustering =DISABLE_CLUSTERING , + .cmd_per_lun =ISCSI_DEF_CMD_PER_LUN , + .eh_abort_handler = iscsi_eh_abort, + .eh_host_reset_handler = iscsi_eh_host_reset, + .use_clustering =DISABLE_CLUSTERING , .proc_name ="iscsi_tcp" , .this_id =-1 , };
drivers/scsi/iscsi_tcp.h +2 -1
@@ -71,7 +71,8 @@#define ISCSI_MGMT_CMDS_MAX 32/* must be power of 2 */ #define ISCSI_MGMT_ITT_OFFSET 0xa00#define ISCSI_SG_TABLESIZE SG_ALL -#define ISCSI_CMD_PER_LUN 128 +#define ISCSI_DEF_CMD_PER_LUN 32 +#define ISCSI_MAX_CMD_PER_LUN 128#define ISCSI_TCP_MAX_CMD_LEN 16#define ITT_MASK (0xfff)