Re: REGRESSION in 2.6.13-rc1: Massive slowdown with Adaptec SCSI

From: Neil Brown
Date: Tue Jul 05 2005 - 04:42:18 EST


On Tuesday July 5, neilb@xxxxxxxxxxxxxxx wrote:
> On Tuesday July 5, matthew@xxxxxx wrote:
> > On Tue, Jul 05, 2005 at 11:08:17AM +1000, Neil Brown wrote:
> > > On 2.6.13-rc1 the same test takes just short on 1 minute and reports
> > > slightly less than 2 M/Second.
> >
> > That sounds like your drives have negotiated an asynchronous transfer
> > agreement. Could you provide your dmesg to confirm that diagnosis?
>
> Yes, that looks right.


I just noticed:


> From: James Bottomley <James.Bottomley@xxxxxxxxxxxx>
> To: Tony Vroon <chainsaw@xxxxxxxxxx>
> Cc: Linux Kernel <linux-kernel@xxxxxxxxxxxxxxx>,
> SCSI Mailing List <linux-scsi@xxxxxxxxxxxxxxx>,
> Andy Whitcroft <apw@xxxxxxxxxxxx>
> Subject: Re: aic7xxx regression occuring after 2.6.12 final
> Date: Sat, 02 Jul 2005 14:46:14 -0500

which had the following patch which fixes this problem nicely. Sorry for the
extra noise.

(Thanks James)

NeilBrown


diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -2633,6 +2633,11 @@ static void ahc_linux_set_dt(struct scsi
ahc_unlock(ahc, &flags);
}

+#if 0
+/* FIXME: This code claims to support IU and QAS. However, the actual
+ * sequencer code and aic7xxx_core have no support for these parameters and
+ * will get into a bad state if they're negotiated. Do not enable this
+ * unless you know what you're doing */
static void ahc_linux_set_qas(struct scsi_target *starget, int qas)
{
struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
@@ -2688,6 +2693,7 @@ static void ahc_linux_set_iu(struct scsi
ppr_options, AHC_TRANS_GOAL, FALSE);
ahc_unlock(ahc, &flags);
}
+#endif

static struct spi_function_template ahc_linux_transport_functions = {
.set_offset = ahc_linux_set_offset,
@@ -2698,10 +2704,12 @@ static struct spi_function_template ahc_
.show_width = 1,
.set_dt = ahc_linux_set_dt,
.show_dt = 1,
+#if 0
.set_iu = ahc_linux_set_iu,
.show_iu = 1,
.set_qas = ahc_linux_set_qas,
.show_qas = 1,
+#endif
};

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/