Fusion-MPT slowness workaround

From: Martin Devera
Date: Tue Nov 01 2005 - 12:46:32 EST


Hello,

because I ran into problem with fusion mpt scsi with 2.6.14 yesterday
I tried to find a workaround.
Because it seems that there is bug in DV code I patched driver to skip
DV and use firmware negotiation data.
It "works for me" both compiled-in and as module.

I tried to Cc all ppl who were working on the issue in past.

Martin Devera aka devik diff -urpb linux-2.6.14/drivers/message/fusion/mptscsih.c drivers/message/fusion/mptscsih.c
--- linux-2.6.14/drivers/message/fusion/mptscsih.c Fri Oct 28 02:02:08 2005
+++ drivers/message/fusion/mptscsih.c Tue Nov 1 15:27:23 2005
@@ -163,10 +163,10 @@ static int mptscsih_synchronize_cache(MP

static struct work_struct mptscsih_persistTask;

+static int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id);
#ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION
static int mptscsih_do_raid(MPT_SCSI_HOST *hd, u8 action, INTERNAL_CMD *io);
static void mptscsih_domainValidation(void *hd);
-static int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, int id);
static void mptscsih_qas_check(MPT_SCSI_HOST *hd, int id);
static int mptscsih_doDv(MPT_SCSI_HOST *hd, int channel, int target);
static void mptscsih_dv_parms(MPT_SCSI_HOST *hd, DVPARAMETERS *dv,void *pPage);
@@ -4196,7 +4196,7 @@ mptscsih_domainValidation(void *arg)

return;
}
-
+#endif
/* Search IOC page 3 to determine if this is hidden physical disk
*/
/* Search IOC page 3 to determine if this is hidden physical disk
@@ -4216,6 +4216,7 @@ mptscsih_is_phys_disk(MPT_ADAPTER *ioc,

return 0;
}
+#ifdef MPTSCSIH_ENABLE_DOMAIN_VALIDATION

/* Write SDP1 if no QAS has been enabled
*/
diff -urpb linux-2.6.14/drivers/message/fusion/mptscsih.h drivers/message/fusion/mptscsih.h
--- linux-2.6.14/drivers/message/fusion/mptscsih.h Fri Oct 28 02:02:08 2005
+++ drivers/message/fusion/mptscsih.h Tue Nov 1 15:24:55 2005
@@ -67,7 +67,7 @@
* capabilities.
*/

-#define MPTSCSIH_ENABLE_DOMAIN_VALIDATION
+//#define MPTSCSIH_ENABLE_DOMAIN_VALIDATION


/* SCSI driver setup structure. Settings can be overridden