lkml.org 
[lkml]   [2011]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [Linaro-mm-sig] [RFC] ARM DMA mapping TODO, v1
    Date
    On Thursday 28 April 2011, Russell King - ARM Linux wrote:
    > What I'd suggest is that dma_alloc_noncoherent() should be architecture
    > independent, and should call into whatever iommu support the device has
    > to setup an approprite iommu mapping. IOW, I don't see any need for
    > every architecture to provide its own dma_alloc_noncoherent() allocation
    > function - or indeed every iommu implementation to deal with the
    > allocation issues either.

    Almost all architectures today define dma_alloc_noncoherent to
    dma_alloc_coherent, which is totally fine on architectures
    where cacheable coherent mappings are the default or where
    we don't need to flush individual cache lines for dma_sync_*.

    The problem with backing either of the two with alloc_pages or
    alloc_pages_exact is that you cannot do large allocation when
    physical memory is fragmented, even if you have an IOMMU.

    IMHO the allocation for both dma_alloc_coherent and
    dma_alloc_noncoherent should therefore depend on whether you
    have an IOMMU. If you do, you can easily allocate megabytes,
    e.g. for use as a frame buffer.

    Arnd


    \
     
     \ /
      Last update: 2011-04-28 14:31    [W:3.131 / U:0.716 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site