Messages in this thread Patch in this message | | | Date | Fri, 19 Dec 2003 11:23:01 -0600 (CST) | From | mikem@beardog ... | Subject | Re: cciss update for 2.4.24-pre1, #3 |
| |
Marcelo, Prefetch has undergone extensive testing internally. Other groups are continuing to test it, also. All controllers on the street now have prefetch enabled. When version 1.92 of the controller f/w is released prefetch will be disabled by default. This patch re-enables it on x86 only because of a _big_ performance hit in RAID1 operations. This is on my list for 2.6. Since it has now been released I will begin submitting updates after Christmas. (My list for 2.6 is extensive.) Also, please include this version of the patch rather than my first submission. I moved a variable inside the ifdef to clean up warnings on non-x86 platforms.
Thanks, mikem mike.miller@hp.com ------------------------------------------------------------------------------ diff -burN lx2424pre1.test2/drivers/block/cciss.c lx2424pre1.test/drivers/block/cciss.c --- lx2424pre1.test2/drivers/block/cciss.c 2003-12-18 09:12:52.000000000 -0600 +++ lx2424pre1.test/drivers/block/cciss.c 2003-12-18 09:09:11.000000000 -0600 @@ -2675,6 +2675,15 @@ printk("Does not appear to be a valid CISS config table\n"); return -1; } + +#ifdef CONFIG_X86 + /* Need to enable prefetch in the SCSI core for 6400 in x86 */ + __u32 prefetch; + prefetch = readl(&(c->cfgtable->SCSI_Prefetch)); + prefetch |= 0x100; + writel(prefetch, &(c->cfgtable->SCSI_Prefetch)); +#endif + #ifdef CCISS_DEBUG printk("Trying to put board into Simple mode\n"); #endif /* CCISS_DEBUG */ diff -burN lx2424pre1.test2/drivers/block/cciss_cmd.h lx2424pre1.test/drivers/block/cciss_cmd.h --- lx2424pre1.test2/drivers/block/cciss_cmd.h 2003-06-13 09:51:32.000000000 -0500 +++ lx2424pre1.test/drivers/block/cciss_cmd.h 2003-12-18 09:10:01.000000000 -0600 @@ -266,6 +266,7 @@ DWORD Reserved; BYTE ServerName[16]; DWORD HeartBeat; + DWORD SCSI_Prefetch; } CfgTable_struct; #pragma pack() #endif /* CCISS_CMD_H */ ------------------------------------------------------------------------------- On Fri, 19 Dec 2003, Marcelo Tosatti wrote: > > > On Wed, 17 Dec 2003 mikem@beardog.cca.cpqcorp.net wrote: > > > Sorry I forgot to send this fix in with the 2 patches I submitted > > yesterday. We found a bug in the ASIC used on the 64xx Smart Array > > controllers. When prefetching from host memory we grab an extra 750 or > > so bytes of data. If this occurs on a memory boundary the machine will crash. > > This is primarily an issue on IPF and Alpha systems although it could happen > > on other platforms. Proliant systems are not affected by this bug because > > memory is contiguous and the top 4k of memory is masked off by the system > > firmware. The solution to the problem is to disable SCSI prefetch in the > > controller firmware. This results in a performance hit on x86 during RAID1 > > operations. This patch turns on prefetch for x86 based systems only. > > Please consider this patch for inclusion in the 2.4.24 kernel. > > This patch should be applied after the 2 I submitted yesterday. It will > > patch into a fresh tree with offsets. > > The other two patches have been included. > > Has the prefetching been tested for long? Which kernels have it enabled? > > What about 2.6? > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |