Skip to content

Commit

Permalink
[SCSI] sym53c8xx: use a queue depth of 1 for untagged devices
Browse files Browse the repository at this point in the history
sym53c8xx uses a command queue depth of 2 for untagged devices,
without good reason.  This _mostly_ seems to work ok, but it has
caused me some subtle problems.  For example, I have an application
where one thread sends write commands to a tape drive, and another
thread sends log sense polling commands.  With a queue depth of
2, the polling commands end up being starved for long periods of
time while multiple write commands are serviced (this may also be
related to the fact the the sg driver queues commands in LIFO order).
This problem is fixed by changing the queue depth to 1 for untagged
devices.  I have tested this change extensively with many different
tape drives, medium changers, and disk drives (disk drives of course
use tagged commands and are therefore unaffected by this patch).

Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
  • Loading branch information
Tony Battersby authored and James Bottomley committed Mar 12, 2009
1 parent 783fa73 commit c2fd206
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/scsi/sym53c8xx_2/sym_glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -792,9 +792,9 @@ static int sym53c8xx_slave_configure(struct scsi_device *sdev)

/*
* Select queue depth from driver setup.
* Donnot use more than configured by user.
* Use at least 2.
* Donnot use more than our maximum.
* Do not use more than configured by user.
* Use at least 1.
* Do not use more than our maximum.
*/
reqtags = sym_driver_setup.max_tag;
if (reqtags > tp->usrtags)
Expand All @@ -803,7 +803,7 @@ static int sym53c8xx_slave_configure(struct scsi_device *sdev)
reqtags = 0;
if (reqtags > SYM_CONF_MAX_TAG)
reqtags = SYM_CONF_MAX_TAG;
depth_to_use = reqtags ? reqtags : 2;
depth_to_use = reqtags ? reqtags : 1;
scsi_adjust_queue_depth(sdev,
sdev->tagged_supported ? MSG_SIMPLE_TAG : 0,
depth_to_use);
Expand Down

0 comments on commit c2fd206

Please sign in to comment.