mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-11 07:39:47 +00:00
[SCSI] cxgb3i, iser, iscsi_tcp: set target can queue
Set target can queue limit to the number of preallocated session tasks we have. This along with the cxgb3i can_queue patch will fix a throughput problem where it could only queue one LU worth of data at a time. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
9a6510eb3f
commit
6b5d6c443a
@ -599,6 +599,7 @@ static struct scsi_host_template iscsi_iser_sht = {
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler= iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler= iscsi_eh_target_reset,
|
||||
.target_alloc = iscsi_target_alloc,
|
||||
.use_clustering = DISABLE_CLUSTERING,
|
||||
.proc_name = "iscsi_iser",
|
||||
.this_id = -1,
|
||||
|
@ -883,6 +883,7 @@ static struct scsi_host_template cxgb3i_host_template = {
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler = iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_target_reset,
|
||||
.target_alloc = iscsi_target_alloc,
|
||||
.use_clustering = DISABLE_CLUSTERING,
|
||||
.this_id = -1,
|
||||
};
|
||||
|
@ -851,6 +851,7 @@ static struct scsi_host_template iscsi_sw_tcp_sht = {
|
||||
.use_clustering = DISABLE_CLUSTERING,
|
||||
.slave_alloc = iscsi_sw_tcp_slave_alloc,
|
||||
.slave_configure = iscsi_sw_tcp_slave_configure,
|
||||
.target_alloc = iscsi_target_alloc,
|
||||
.proc_name = "iscsi_tcp",
|
||||
.this_id = -1,
|
||||
};
|
||||
|
@ -1463,6 +1463,16 @@ int iscsi_change_queue_depth(struct scsi_device *sdev, int depth)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iscsi_change_queue_depth);
|
||||
|
||||
int iscsi_target_alloc(struct scsi_target *starget)
|
||||
{
|
||||
struct iscsi_cls_session *cls_session = starget_to_session(starget);
|
||||
struct iscsi_session *session = cls_session->dd_data;
|
||||
|
||||
starget->can_queue = session->scsi_cmds_max;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(iscsi_target_alloc);
|
||||
|
||||
void iscsi_session_recovery_timedout(struct iscsi_cls_session *cls_session)
|
||||
{
|
||||
struct iscsi_session *session = cls_session->dd_data;
|
||||
|
@ -36,6 +36,7 @@ struct scsi_transport_template;
|
||||
struct scsi_host_template;
|
||||
struct scsi_device;
|
||||
struct Scsi_Host;
|
||||
struct scsi_target;
|
||||
struct scsi_cmnd;
|
||||
struct socket;
|
||||
struct iscsi_transport;
|
||||
@ -350,6 +351,7 @@ extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht,
|
||||
bool xmit_can_sleep);
|
||||
extern void iscsi_host_remove(struct Scsi_Host *shost);
|
||||
extern void iscsi_host_free(struct Scsi_Host *shost);
|
||||
extern int iscsi_target_alloc(struct scsi_target *starget);
|
||||
|
||||
/*
|
||||
* session management
|
||||
|
Loading…
x
Reference in New Issue
Block a user