This e-mail is to provide the solution to my problem, in case others
need it. 

The CCISS driver used by the Compaq SmartArray uses 64-bit DMA by
default on the vanilla linux kernel. In servers with more than 4GB of
ram (with the 64G option selected at compile time) this causes the raid
array to hang when under load. Note that only the array hangs, the rest
of the system remains usable.

The solution to this, provided by HP, is to disable 64-bit DMA in the
2.4 kernel series. Supposedly the RedHat kernel contains a fix that
doesn't involve disabling 64-bit DMA.

The following is a patch for 2.4.21 to disable 64-bit DMA:

diff -burN lx2421.orig/drivers/block/cciss.c linux-2.4.21/drivers/block/cciss.c
--- lx2421.orig/drivers/block/cciss.c   2003-06-13 09:51:32.000000000 -0500
+++ linux-2.4.21/drivers/block/cciss.c  2003-07-23 08:38:32.000000000 -0500
@@ -2834,17 +2834,6 @@
        hba[i]->ctlr = i;
        hba[i]->pdev = pdev;
 
-       /* configure PCI DMA stuff */
-       if (!pci_set_dma_mask(pdev, (u64) 0xffffffffffffffff))
-               printk("cciss: using DAC cycles\n");
-       else if (!pci_set_dma_mask(pdev, (u64) 0xffffffff))
-               printk("cciss: not using DAC cycles\n");
-       else {
-               printk("cciss: no suitable DMA available\n");
-               free_hba(i);
-               return -ENODEV;
-       }
-               
        if (register_blkdev(MAJOR_NR+i, hba[i]->devname, &cciss_fops)) {
                printk(KERN_ERR "cciss:  Unable to get major number "
                        "%d for %s\n", MAJOR_NR+i, hba[i]->devname);

End Of Patch

-- 

----------------------------
| Josh Lauricha            |
| [EMAIL PROTECTED] |
| Bioinformatics, UCR      |
|--------------------------|


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to