summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aic94xx/aic94xx_init.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@us.ibm.com>2006-08-30 23:18:33 +0200
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-08-30 23:30:06 +0200
commitf19eaa7f53736449a6eac89c3863eca2c64d5913 (patch)
treedd60f697af06bf3b6b1ece3fa7a29485ff2b4e92 /drivers/scsi/aic94xx/aic94xx_init.c
parent[SCSI] aic94xx: add MODULE_FIRMWARE tag (diff)
downloadlinux-f19eaa7f53736449a6eac89c3863eca2c64d5913.tar.xz
linux-f19eaa7f53736449a6eac89c3863eca2c64d5913.zip
[SCSI] aic94xx: Increase can_queue for better performance
This patch sets can_queue in the aic94xx driver's scsi_host to better performing values than what's there currently. It seems that asd_ha->seq.can_queue reflects the number of requests that can be queued per controller; so long as there's one scsi_host per controller, it seems logical that the scsi_host ought to have the same can_queue value. To the best of my (still limited) knowledge, this method provides the correct value. The effect of leaving this value set to 1 is terrible performance in the case of either (a) certain Maxtor SAS drives flying solo or (b) flooding several disks with I/O simultaneously (md-raid). There may be more scenarios where we see similar problems that I haven't uncovered. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aic94xx/aic94xx_init.c')
-rw-r--r--drivers/scsi/aic94xx/aic94xx_init.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index 3ec2e46f80c6..69aa70887530 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -620,6 +620,8 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
asd_ha->hw_prof.bios.present ? "build " : "not present",
asd_ha->hw_prof.bios.bld);
+ shost->can_queue = asd_ha->seq.can_queue;
+
if (use_msi)
pci_enable_msi(asd_ha->pcidev);