Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 8 Dec 2003 08:22:14 -0800 | From | William Lee Irwin III <> | Subject | Re: 2.4: mylex and > 2GB RAM |
| |
On Mon, 2003-12-08 at 16:36, William Lee Irwin III wrote: >> Could you send out a dmesg and a config file?
On Mon, Dec 08, 2003 at 04:54:31PM +0100, Per Buer wrote: > Sure. > We have tried two kernels on this server. A plain 2.4.18 (no patches) > and 2.4.22 with the RMAP VM (we thought this might be related to the VM) > and the brk()-fixes. No such luck. :(
The most common issue of this kind is where the device has addressibility constraints that are automatically satisfied due to limited memory, but once that's exceeded, the kernel resorts to overly-strict allocation constraints because it has no other way of representing the constraint.
Specifically, the areas to which allocations may be constrained are:
ZONE_HIGHMEM: no constraint ZONE_NORMAL: <= 896MB ZONE_DMA: <= 16MB
If your memory ended at 2GB and the driver had 31-bit DMA, it may have decided to use unconstrained allocations. Then, when you added more RAM, it was forced to ask for <= 896MB, which made it copy to buffers that are actually below 896MB most of the time.
However, what I can see in the driver is very inconsistent with this theory: it rather suggests it has 32-bit PCI and is otherwise not constrainted.
So it's more likely that you have an unfriendly dma mask inherited from upper levels (e.g. default bounce_pfn values in scsi template bits) or bus' constraints (pci_set_dma_mask() etc. bits) than anything per-driver.
-- wli - 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/
| ![\](/images/icornerr.gif) |