Re: [RFC PATCH] dma: Add barrierless dma mapping/unmapping api

From: FUJITA Tomonori
Date: Wed Jan 27 2010 - 00:21:16 EST


On Tue, 26 Jan 2010 12:11:34 -0800
Abhijeet Dharmapurikar <adharmap@xxxxxxxxxxxxxx> wrote:

> FUJITA Tomonori wrote:
> > On Tue, 26 Jan 2010 15:30:10 +1100
> > Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> >> On Mon, 2010-01-25 at 18:35 -0800, adharmap@xxxxxxxxxxxxxx wrote:
> >>> From: Abhijeet Dharmapurikar <adharmap@xxxxxxxxxxx>
> >>>
> >
> >> There are people nowadays putting AXI bridges and the whole ARM
> >> paraphernalia of IP cores behind them on PowerPC cores for example and I
> >> can see that happening with x86 as well.
> >>
> >> In your case, I believe your are fixing the wrong problem anyways. The
> >> right approach would be instead to put all your buffer into an sglist
> >> and use dma_map/unmap_sg().
> >
> > Agreed again. That's exactly what I suggested before:
> >
> > http://marc.info/?l=linux-kernel&m=126294076917753&w=2
>
> I somehow missed your post, my apologies. Agreed that dma_map/unmap_sg
> would be the correct api to use here, however they still call the
> dmac_.*_range to map buffers.

Hmm, sounds like arm's implementation issue. dma_map_sg API doesn't
require such. dma_map_sg API gives what you want, do a sync only after
mapping the last buffer.


> I could change those calls to do a barrier
> only after mapping the last buffer. This would be much more cleaner
> than introducing a .*_nobarrier API.
--
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/