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

From: FUJITA Tomonori
Date: Mon Jan 25 2010 - 23:43:59 EST


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>
> >
> > Tests have shown that there is a significant performance gain
> > when a driver uses mapping/unmapping functions without a barrier
> > multiple times and calls dsb() only after the last buffer. This
> > api adds support for barrierless dma operations on ARMv6
> > and ARMv7.
>
> Gotta love when each architecture has subtely different barriers
> semantics ...
>
> This is ARM stuff at this stage and as such not a huge deal to me but I
> don't like seeing new arch specific API extending generic ones for
> drivers, it's just going to make it harder when those drivers start
> using them and those devices are use on other archs.

Completely agreed. Adding architecture specific DMA API is a really
bad idea. We need to keep the DMA API that works for all the
architectures.


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