Bad SCSI performance with 2.6.14 and Fusion-MPT
Subsystems (2)
I'm seeing what looks to be the same problem (see: U320 SCSI negotiation problem in Linux 2.6.13 and later implementations on LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 08)). [[I think I have a patch (perhaps suspect, but it works for me), if you're interested.]]
Alan D. Brunelle
Quoted 1 line · Alan D. Brunelle
I'm seeing what looks to be the same problem (see: U320 SCSI negotiation problem in Linux 2.6.13 and later implementations on LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 08)). [[I think I have a patch (perhaps suspect, but it works for me), if you're interested.]]
Yeah, I'd like to see it. Interestingly another box with the same hardware setup and very slightly different .config works fine with 2.6.14.
best regards,
michael
Quoted 10 lines · Michael Renner
Quoted 1 line · Alan D. Brunelle
I'm seeing what looks to be the same problem (see: U320 SCSI negotiation problem in Linux 2.6.13 and later implementations on LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 08)). [[I think I have a patch (perhaps suspect, but it works for me), if you're interested.]]
Yeah, I'd like to see it. Interestingly another box with the same hardware setup and very slightly different .config works fine with 2.6.14.
best regards,
michael
It doesn't surprise me that a different .config or hardware change would affect this. If I understand the problem correctly, then it depends upon timing - and changing things (hw or sw) could affect the outcome.
The posting by
The following works for me - but as noted previously, it may be suspect in general: I'm concerned about the indefinate delay (theoretical).
drivers/message/fusion/mptbase.c 2005-11-17 10:11:52.000000000 -0500 renamed from drivers/message/fusion/mptbase.c 2005-11-17 09:17:15.000000000 -0500 +3 -1
@@ -4994,7 +4994,9 @@ if ((mf = mpt_get_msg_frame(mpt_base_index, ioc)) == NULL) { dcprintk((MYIOC_s_WARN_FMT "mpt_config: no msg frames!\n", ioc->name)); - return -EAGAIN; + do { + msleep(25); + } while ((mf = mpt_get_msg_frame(mpt_base_index, ioc)) == NULL); } pReq = (Config_t *)mf; pReq->Action = pCfg->action;