Re: [PATCH] asm-generic: add dma-mapping-linear.h

Russell King
2009-06-01T09:23:13Z

On Mon, Jun 01, 2009 at 06:16:56PM +0900, FUJITA Tomonori wrote:
> On Mon, 1 Jun 2009 09:29:43 +0100
> Russell King <rmk+lkml@arm.linux.org.uk> wrote:
>
> > On Mon, Jun 01, 2009 at 05:08:09PM +0900, FUJITA Tomonori wrote:
> > > This adds a version of the dma-mapping API to asm-generic that can be
> > > used by most architectures that only need a linear mapping.
> >
> > It depends what is meant by "linear mapping".
> >
> > If that's just a way of saying "all that needs to be done for the
> > DMA streaming APIs is to flush the cache" then the vast majority of
> > ARMs fall into that category.
>
> I guess that his definition is 'no dynamic remapping'.

... which as I say is what ARM does for the streaming mappings.

> > The DMA bounce code is a broken design concept that really needs to
> > be put to death.
>
> You are talking about arch/arm/common/dmabounce.c? If so, it sounds
> more interesting (to me at least). It's kinda swiotlb per device,
> right? What you want to do for arch/arm/common/dmabounce.c?

Yes.

It's a nasty hack which leads to OOMs on various platforms since it
causes additional memory pressure from parts of the kernel which we
don't expect, and also causes additional difficulty with allocating
and freeing DMA memory from IRQ context. There's an unsolved bug in
the kernel bugzilla for this which I see no hope of ever being resolved.

I _really_ wish that dmabounce never existed. It's a right royal
pain in the preverbial.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/