Re: [RFC] generic device DMA implementation

From: David Gibson (david@gibson.dropbear.id.au)
Date: Sat Dec 07 2002 - 05:19:43 EST


On Fri, Dec 06, 2002 at 10:31:13AM -0800, David Miller wrote:
> From: James Bottomley <James.Bottomley@steeleye.com>
> Date: Fri, 06 Dec 2002 12:29:10 -0600
>
> How about (as Adam suggested) two dma allocation API's
>
> 1) dma_alloc_consistent which behaves identically to pci_alloc_consistent
> 2) dma_alloc which can take the conformance flag and can be used to tidy up
> the drivers that need to know about cache flushing.
>
> Now that the situation is much more clear, I'm feeling a lot
> better about this.
>
> I have only one request, in terms of naming. What we're really
> doing is adding a third class of memory, it really isn't consistent
> and it really isn't streaming. It's inconsistent memory meant to
> be used for "consistent memory things".

Not really... it seems to me its abdicating the choice of consistent
versus streaming memory to the platform. Or to look at it another
way, the actual guarantees it provides are identical to those of
streaming DMA, but this gives the platform an opportunity to optimise
by controlling the allocation rather than demanding it deal with
memory from any old place as pci_map_* must do.

A driver using this sort of memory should be at least isomorphic to
one using streaming memory (maybe identical, depending on exactly
which functions are which etc.).

> So could someone come up with a clever name for this thing? :-)

Given that, how about "fast-streaming" DMA memory.

-- 
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson
-
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/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:29 EST