Re: 2.4: mylex and > 2GB RAM

From: William Lee Irwin III
Date: Mon Dec 08 2003 - 11:24:47 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/