Re: Ping-Pong Compatible DMA buffer chaining

From: Alan Cox
Date: Mon Jan 02 2006 - 20:12:58 EST


On Llu, 2005-12-26 at 11:35 +0530, Deven Balani wrote:
> 1) The SATA Host Controller supports a DMA Logic which has Ping Pong Buffers.
> How Can I allocate a linear contiguous buffer and give it to the
> Buffer Descriptors of the Host Controller. I believe consistent alloc
> would help me in this regard. But How could I do a chaining of Buffers
> in a Ping Pong Scenario which has Buffer Descriptors.

Depends entirely on your hardware.

> 2) The libata is using Scatter-Gather List to send Device Identify
> Command. Is it necessary to have a Scatter-Gather List for non-PCI ARM
> platforms. Can I bypass this mechanism.

It is neccessary as the user space virtual memory will be fragmented in
physical space (unless you are using MMUless Linux when it will be far
less fragmented).

If the platform is an MMUless one then you can fill in the host
structure and indicate that you support a maximum scatter gather list
size of one. This will break up I/O's when neccessary to keep within
that limit but this will hurt your performance by causing a lot more
requests on a non MMUless system.

Alan

-
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/