[SCSI] aic94xx: Increase can_queue for better performance
authorDarrick J. Wong <djwong@us.ibm.com>
Wed, 30 Aug 2006 21:18:33 +0000 (14:18 -0700)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Wed, 30 Aug 2006 21:30:06 +0000 (17:30 -0400)
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>
drivers/scsi/aic94xx/aic94xx_init.c

index 3ec2e46..69aa708 100644 (file)
@@ -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);